Generic Return value Convert Problem

Hey , I am some problem about return value convert
the target function return value type is generic , can you show me snippet

i want to conver return value to target object

for example

Sure, you need to call inflate:
JsonMapper.method("ToObject").overload("System.Strong").inflate(Message).invoke(Return);

i think you misunderstand my meanings ?
the function ToObject return generic value and paramer's type is System.String , in frida-il2cpp-bridge is Il2Cpp.String
const obj = JsonMapper.method("ToObject").overload("System.String").inflate(MessageClass).invoke(Return);
i think this snippet , represent the input paramter is generic ?
i want to turn the return object to another object , like type cast ?
i evaluate your snippet and get the error below ?

In dump.cs , there are two functions i used

one is ToJson , which serialize the System.Object to Json string
the another ToObject , which deserialize the Json String to System.Object
so I Intercept a function that the input paramter is System.Object , so i use ToJson to serialize object to json string , then i do something in this json string , then i use ToObject function to turn this json string to the object that i intercept .

As you can see, ToObject doesn't have an offset (there's no // 0x....), which means it cannot be called as it is (as expected, because it's generic). So you need to inflate it first (i.e. pass an actual type, so it's not generic anymore). But that error is definitely unexpected.

i want to turn the return object to another object , like type cast ?

This is what the inflate is for. Type casting is not a thing and it doesn't make sense in this scenario (the deserializer needs to now the type, right?).

the another ToObject , which deserialize the Json String to System.Object

I can't see such function, the one you highlighted returns a LitJson.JsonData.
What's the application id/name? So I can take a look

The apk download link : https://download162100001.wmupd.com/niSHpJtGsi/wTJsNYFPmkAiZ/htXsGWtwaKb/fiTDJrz/mxWjFhndmXBGHN.apk
the snippets i used
var AssemblyCSharp = Il2Cpp.Domain.assembly("Assembly-CSharp").image;
var JsonMapper = AssemblyCSharp.class("LitJson.JsonMapper");

AssemblyCSharp.class("GameNet").method("SendMsg").implementation = function(message : Il2Cpp.Object) : void{ // 具体业务层传递Protobuf实例 -> 网络逻辑处理层
    var tpe = message.method("GetType").invoke() as Il2Cpp.Object;
    var MessageId = AssemblyCSharp.class("LiteNet.MessageMapping").method("GetMessageID").overload("System.Type").invoke(tpe) as Il2Cpp.Object;
    if(MessageId.toString() == "XX_RESPONSE_HEARTBEAT"){
        this.method("SendMsg").invoke(message)
    }else{
        // object to json string
        var Return = JsonMapper.method<Il2Cpp.String>("ToJson").invoke(message)

        console.warn(`return json string is ${Return}`)

        // here want to convert json string to message
        const Obj = JsonMapper.method("ToObject").overload("System.String").inflate(AssemblyCSharp.class("LiteNet.IMessage")).invoke(Return)
        console.log(Obj) // want to convert to message object
        this.method("SendMsg").invoke(Obj) // converted object

    }

}

Thanks, but would you tell me the apk id (i.e. com.example.application) instead of a direct apk download?

com.pwrd.secret.one.laohu

Ok, I got it.
This line
JsonMapper.method("ToObject").overload("System.String")

selects this method:
static LitJson.JsonData ToObject(System.String json); // 0x0126c040

That's why it complains it's not generic. Unfortunately there's an overload clash.
So, to select this one:
static T ToObject(System.String json);

you can do:
const ToObject = JsonMapper.methods.find(candidate => candidate.toString() == "static T ToObject(System.String json);");

Full code:
import "frida-il2cpp-bridge";

Il2Cpp.perform(() => {
    const AssemblyCSharp = Il2Cpp.Domain.assembly("Assembly-CSharp").image;
    const JsonMapper = AssemblyCSharp.class("LitJson.JsonMapper");

    const GetMessageID = AssemblyCSharp.class("LiteNet.MessageMapping").method<Il2Cpp.Object>("GetMessageID").overload("System.Type");
    const ToObject = JsonMapper.methods.find(candidate => candidate.toString() == "static T ToObject(System.String json);")!.inflate<Il2Cpp.Object>(AssemblyCSharp.class("LiteNet.IMessage"));

    console.log(ToObject);

    AssemblyCSharp.class("GameNet").method("SendMsg").implementation = function (message: Il2Cpp.Object): void {
        const type = message.method<Il2Cpp.Object>("GetType").invoke();
        const messageId = GetMessageID.invoke(type);

        if (messageId.toString() == "XX_RESPONSE_HEARTBEAT") {
            this.method("SendMsg").invoke(message);
        } else {
            const result = JsonMapper.method<Il2Cpp.String>("ToJson").invoke(message);

            console.log(`return json string is ${result}`);

            const object = ToObject.invoke(result);

            console.log(object);

            this.method("SendMsg").invoke(object);
        }
    }
});

on my machine , abort was called ? when invoke
            const object = ToObject.invoke(result);

I didn't run the code because I needed to play the game. "Abort was called" means an exception occurred (you can put Il2Cpp.installExceptionListener("all"); somewhere so it will print that exception).

Yeah, indeed that may be the reason.

thank you quickly reply , it solved my problem , thank you so much .


The Training Time Problem（Solved)

Hello Bohan,
Thanks for your email.
According to the training time, you can try the following method.

Use SSD to store the data,
Use convert the N  in to batch size B  to speed up a bit of the training progress.

    def forward(self, inputTensor):
        B = inputTensor.shape[0] # batch size
        # N = inputTensor.shape[1]
        # C =
        (B,N,C,W,H) = inputTensor.shape
        # print(inputTensor.shape)
        # print(B,N,C,W,H)
        # B x G x N
        input_currentAgent = inputTensor.reshape(B*N,C,W,H).to(self.config.device)
        featureMap = self.ConvLayers(input_currentAgent).to(self.config.device)
        featureMapFlatten = featureMap.view(featureMap.size(0), -1).to(self.config.device)
        compressfeature = self.compressMLP(featureMapFlatten).to(self.config.device)
        extractFeatureMap_old = compressfeature.reshape(B,N,self.numFeatures2Share).to(self.config.device)
        extractFeatureMap = extractFeatureMap_old.permute([0,2,1]).to(self.config.device)
        # DCP
        for l in range(self.L):
            # \\ Graph filtering stage:
            # There is a 3*l below here, because we have three elements per
            # layer: graph filter, nonlinearity and pooling, so after each layer
            # we're actually adding elements to the (sequential) list.
            self.GFL[2 * l].addGSO(self.S) # add GSO for GraphFilter
        # B x F x N - > B x G x N,
        sharedFeature = self.GFL(extractFeatureMap)
        (_, num_G, _) = sharedFeature.shape
        sharedFeature_permute =sharedFeature.permute([0,2,1]).to(self.config.device)
        sharedFeature_stack = sharedFeature_permute.reshape(B*N,num_G)
        action_predict = self.actionsMLP(sharedFeature_stack)
        return action_predict

Thanks very much!


Prover: stucks with no capacity

What: Prover gets stuck with "no capacity"
Prover: 0xfbfd4F6993BC0D3481B9bf61AD0892f817a2e7aC
Background
It has been working for a while and then at some time after successfull Proof:
INFO [09-21|02:53:28.264] Proof generated                          height=20650 degree=22 time=4m0.02887416s
INFO [09-21|02:53:28.264] New valid block proof                    blockID=20650 proposer=0x53bC9E660415632C1487Baf7d7f3725fB49870FA hash=9f8fc5..c8b999 proof=0000000000000000000000000000000098862a308e41d

It sends a message
ERROR[09-21|03:19:40.905] Handle new BlockProposed event error     error="no prover capacity available"

And begins:
INFO [09-21|03:19:49.866] Cancel proof generation for block        blockId=20588
INFO [09-21|03:19:49.866] Proposed block information               blockID=20588 prover=0xfbfd4F6993BC0D3481B9bf61AD0892f817a2e7aC proposedAt=1,695,264,012
INFO [09-21|03:19:49.866] Proposed block is provable               blockID=20588 prover=0xfbfd4F6993BC0D3481B9bf61AD0892f817a2e7aC proofWindowExpired=false

As per status it says:
{"minProofFee":10,"maxExpiry":3600,"currentCapacity":0}

While TTKOj token balance is enough.
Workaround:
It gets back to normal after restart.

Is Cancel proof generation for block log the reason? cc @cyberhorsey

I dont know what is the reason... This is my current request for this.
But if it canceled, why it did not release capacity and keeps returning "currentCapacity":0 untill it restarts?

Opened a PR to try to fix this: https://github.com/taikoxyz/taiko-client/pull/402

It happened again.
Any logs needed?

Could you pls clarify a case when "local proof generation can be canceled".

Proposer assigns proposed block for prover and no one can submit proof for current block unless time is expired, which is 5400 sec.

In the logs I dont see any proofs generating up to 5400 sec, in fact it was no more then 5 min


Remove namespaces from cluster-scoped watched objects consistently

The query batch had the ObjectIdentifier with the invalid namespace but
the watches associated with the watcher had the namespace removed. This
caused the second duplicate query batch to think cluster-scoped object
was no longer being watched.
Relates:
https://issues.redhat.com/browse/ACM-13346

/cherry-pick release-2.9.1

/cherry-pick v0.5


Support Anyscale for llama models.

Anyscale currently has the cheapest llama2 models, it would be nice to integrate it with lmql. https://app.endpoints.anyscale.com/

Hi there, thanks for creating an issue for this. Can you point to resources specifying the concrete API of AnyScale models. Like what kind of parameters and control over the generation process are available? Thanks.

Hi there, thanks for creating an issue for this. Can you point to resources specifying the concrete API of AnyScale models. Like what kind of parameters and control over the generation process are available? Thanks.

Its pretty much the same as openai
https://d3qavlo5goipcw.cloudfront.net/guides/models#query-a-model-1
Then they have a python pacakage which they suggest people should use
https://d3qavlo5goipcw.cloudfront.net/guides/migrate-from-openai

Unfortunately, as documented by AnyScale at https://d3qavlo5goipcw.cloudfront.net/guides/migrate-from-openai, the OpenAI-like API they provide does not implement the features required for supporting LMQL.
However, we will keep Anyscale on the list for a potential basic form of integration (w/ support for very basic constraints only). Please let us know if this is something you'd be interested in.


Purple gel bug

I want to port a mappack from Mari0 CE again and I've encountered 2 bugs with purple gel that make it impossible:

While underwater, right/left wall with purple gel, are really bugged. Once you touch the wall you can't move at all, and you can't jump too because the 'jump' button makes you walk upward for some weird reason
A character who can double jump, can't use his second jump when walking on a right/left wall with purple gel

Gif to illustrate what I mean about the underwater purple gel bug:

3f67b501a61eb29251587635582cf4ae7f4346a4


CI script to just build and run npm tests

It would be a helpful step to just treat buckaroo as a typescript project, compile it, pass linting rules, and pass unit tests (write a single initial unit test).
This is different than making the full CI setup work, because this is just treating bucakroo as a regular typescript/react project

This is working in #201  https://github.com/paddymul/buckaroo/pull/201


Java code

This aims to solve issue #31

Thank you for contributing to our repository. We loved that your code was clean, and easy to understand.
We hope you enjoy contributing to open source!


Release new version to RubyGems with Rails 6 fix

@dankimio I am aware a new release needs to go out. It will as soon as I have time to test it myself.

Resolve with the release of 1.5.1


Push version 2.15.2 to  Docker Hub

Hi @msiegenthaler ,
Just realized there is a 2.15.2 version but doesn't seem to be pushed to Docker Hub (latest one is 2.14.1. Could you please push it?
Thanks for your work!

Sure, I've just pushed it

Thanks a lot! There is a newer version for the 2.xx release, 2.16.8. Maybe we can create a 2.xx branch out of the 2.15.2 commit and then bump it to 2.16.8  (did https://github.com/kir4h/docker-helm/commit/cc9160768f968b5e60d89c41020654a3df8bee28 yesterday to have a temporary solution, but if we create the branch I can create a PR to it or you can just bump it yourself if you have spare time).


Client fixes

Fix multiple issues with client side code.
Generate proper find query.
Add codegen as it is being used in the current app.
This PR is enormously large because the last commits pushing the code changes for the generated code. I needed to do that in order to make some changes but since now all is fixed it should be ok. Please review this using commit ranges.
Verification
Generate code (again)
Generate codegen (again)
See there is no changes in the codebase
Start server
Start client
Do all possible operations with the client.

Note: Still working on fixing client side app. Not ready for review

This is working currently with sample app

@darahayes It is actually very easy now to swap generated hooks to offix hooks and test it. I have done that quickly and it works (without testing conflict and proper error handling)

After running graphback generate:

After running yarn codegen:client:


Inconsistency between Privileged spec and Unprivileged spec related to counters

In the “Counters” chapter of Unprivileged ISA specification the following is mentioned:
“For a low-end implementation, the upper 32 bits of each counter can be implemented using software counters incremented by a trap handler triggered by overflow of the lower 32 bits.”
This seems to conflict with the fact that mcycleh and minstreth are mandatory in the Privileged Specification.
I have two questions related to this:

It would be great indeed for low-end implementation if cycleh and instreth do not need to be implemented. This however only makes sense if the implementation is free to not implement mcycleh and minstreth either while still being compliant to the Privileged specification and this seems not to be allowed (as nowhere it is mentioned that an implementation is allowed to trap on accesses to mcycleh and minstreth). Is implementation of  mcycleh and minstreth optional (while still claiming compliancy to the Privileged ISA specification)? Even better, would it be allowed to trap on all of mcycle, mcycleh, minstret and minstreth CSRs while still claiming compliancy to the Privileged specification (as low-end implementations can easily do without any of these CSRs)?
If we implement the mentioned ‘trap upon overflow’ for each of the counters, then it would be nice if the cause of such trap would get standardized in mcause. Are we supposed to just use some of the ‘designated for custom use’ values in mcause or are there plans to standardize these overflow bits. (I am aware of the proposed Sscofpmf extension, but that seems more related to the Zihpm extension as opposed to the Zicntr extension).

The text you quoted is non-normative so shouldn't be taken as Gospel.
You're certainly right that this text is in conflict with the M-mode architecture, but note that a correct implementation of the unprivileged architecture technically doesn't require M-mode at all.
If you did take this approach, it would be a nonstandard feature, and so it would call for a nonstandard mcause code.

The conflict I see here is there is no architectural defined way to trap on
those counter overflows, and that trap isn't  invisible to Mmode - is that
the conflict you see?
I interpreted the "software counter" to mean a CSR that didn't have counter
hardware, as opposed to saving it in SRAM somewhere or something, ao
mcycleh, etc., would still exist.
I also realize that is silly, since they're objecting to more than just the
counter HW, but the flops s well.
On Fri, Nov 12, 2021 at 12:07 PM Andrew Waterman @.***>
wrote:

The text you quoted is non-normative so shouldn't be taken as Gospel.
You're certainly right that this text is in conflict with the M-mode
architecture, but note that a correct implementation of the unprivileged
architecture technically doesn't require M-mode at all.
If you did take this approach, it would be a nonstandard feature, and so
it would call for a nonstandard mcause code.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/riscv/riscv-isa-manual/issues/769#issuecomment-967456257,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHPXVJQDT6UKUIDMBCACNTTULVXYZANCNFSM5H4OHLEA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@allenjbaum I was thinking along those lines: the visibility of the trap to M-mode is the most problematic aspect, IMO.

Thank you for your answers. Agreed that 'that a correct implementation of the unprivileged architecture technically doesn't require M-mode at all'. This is why I added the phrase 'while still claiming compliancy to the Privileged ISA specification' in my question. The reason behind my question is indeed that it would be nice if there would be a way to eliminate the cost of the associated 128 flip-flops (mcycle(h) and minstret(h)) and 2 64-bit counters in small embedded cores, while still being compliant to both the Privileged and Unprivileged specifications. It is clear that this is not possible.

Closing as I don't think any more work needs to be done here. Please reopen if I am incorrect.

Hi @kersten1 , above discussion only raised more concerns than I posted myself in the original question. The (non-normative) quote that I asked about it still in Version 20240411 of the Unprivileged Architecture so I consider this issue to be unsolved.

@aswaterman It seems like the non-normative comment in the Unpriv spec (quoted up top) is not relevant in compliant implementations of the Machine-level Priv ISA?
If so, then should the non-normative comment be stricken or mpodified in some way?  If not, then is the idea that implementing the non-normative comment requires hardware support for an M-mode-invisible trap to a software emulation of the high halves of counter CSRs?  Or to what extent is treating this as a custom extension with use of a custom M-mode cause code still compliant with Machine-level Priv ISA?


Error when "Alert" after "ActionSheet"

Short description of the problem:
If called a ActionSheet and call Alert, it's impossible close the alert clicking in a button :disappointed:
What behavior are you expecting?
If called a ActionSheet and call Alert, it's possible close the alert clicking in a button
Steps to reproduce:

Present a ActionSheet
When selected a item, present a Alert
Try click a button

Other information:
Maybe like https://github.com/driftyco/ionic/issues/7672
Version
Ionic 2 version. This defect has been dettected in beta-10 and beta-11 (beta-7 has ok)
Plunker that shows an example of your issue
For Ionic 2 - (is beta-10?) http://plnkr.co/edit/A9IgINTaACVkLRpnDtjs?p=preview
Ionic info
Cordova CLI: Not installed
Gulp version:  CLI version 3.9.1
Gulp local:
Ionic CLI Version: 2.0.0-beta.32
Ionic App Lib Version: 2.0.0-beta.18
OS: Distributor ID:	Ubuntu Description:	Ubuntu 16.04.1 LTS
Node Version: v4.2.1

Hello! Thanks for opening an issue with us! I have made a plunker here that shows the correct way to do this. You can read more about our async navigation in Ionic 2 here in our docs. Thanks for using Ionic!

I'm sorry for my misinformation.
Congratulations agility of your support
Good Olympics ^^

@jgw96 While this issue is working fine on ionic 2 RC1
If you call an alert using an ActionSheet button, it will cause the actionSheet not to animate away.


Words with spaces written into the side panel give 0 points even if they are correct

As a learner I would like to get a point for typing in for instance "NEW YORK" in the side panel if "NEW YORK" is the correct answer so that I don't have to fill it directly into the crossword fields.
Steps to reproduce:

Make a crossword were one of the answers has a space in it
Answer the crossword via the side panel instead of in the crossword itself.
Observe that the word with the space in it won't be recognized as answered correctly.

@falcon-git Thanks, fixed!


Remove DS_Store files in remote repo (GitHub)

Remove DS_Store files in remote repo (GitHub)

Looks good!


Starboards cannot be created

Describe the bug
Glyph is unable to start new starboards. Custom emojis do not show up in the option either.
To Reproduce
Steps to reproduce the behavior:

Ask Glyph "edit config"
Follow the link and try to edit the starboard section and then ask Glyph to load it

Expected behavior
It should be possible to enable the starboard feature and chose a custom emoji.
Screenshots
N/A
Glyph Version
155
Additional context
N/A

It appears myjson, which was used for handling config data for editing, just kinda stopped existing. I should really just make an actual website at this point.

Temporary solution for now is to join the support server and ask for it to be manually done. This is far from ideal!


Missing Sound files

ICBM is trying to play a few sound files but as normal is failing to do so. This may be due to the sounds.json not being setup yet.

@DarkGuardsman Please make this a priority, fixing the current mod should be more important than adding new features ot it

http://starlogs.net/#BuiltBrokenModding/ICBM

@louisw22 its being rewritten. So new content is being added because of that.

Right now we have zero sound files to use. This is why this has not been fixed as i don't want to recycle the old sound files. Most of them did not fit the objects well.

Some progress has been made, a sounds.json files was added recently to prepare for sounds.

Thanks

https://github.com/BuiltBrokenModding/ICBM/commit/139420e61921909c784868ca026a24b1fe4e4e4c


MB logo seldomly overlaying video

Using a Roku 3
Sometimes when playing a media file on the Roku beta client, the MB logo overlays the video.
I can still hear the audio, however all I can see is the MB logo.
This issue may just have something to do with wireless connectivity dropping

Apparently what will 'fix' the bug if it occurs on media playback is pausing and playing the video a few times.
Still having the same issue on Emby Beta 3.0.5557.0


cargo expand --tests fails on coresimd

To reproduce:
git clone git@github.com:rust-lang-nursery/stdsimd.git
cd stdsimd/crates/coresimd
cargo expand --tests

produces:
error: extra arguments to `rustc` can only be passed to one target, consider filtering
the package by passing e.g. `--lib` or `--bin NAME` to specify a single target
cat: /var/folders/mm/y444qqwd0kn52fycyz6nsph40000gn/T/cargo-expand.wi2xxYzTETto/expanded: No such file or directory

cargo +nightly expand --lib manu

Specify your main crate
Will have to run with nightly as it seems to use Z flag


Support bitwise and operation in the kernel

Which issue does this PR close?

part of #2702
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

This is great -- thank you @liukun4515


Mark google config as archived/no longer maintained

I think the google config should either be removed, or marked as archived/no longer maintained.

Thank you for letting me know! Removed


Help please

Help please
Originally posted by @KingBodo in https://github.com/bnb-chain/token-bind-tool/pull/16

@Moncajurenova Are you facing a transaction error?


refactor upcast conjured elemental or fey

. Feature now patches 2 methods instead of 3;
. Improved performance as SpellDefinition.SubspellsList patch was getting called 3 times from SubSpellSelectionModal.Bind. Now it gets cached once and reused;

@PhilPJL : couldn't open the shared save file but revisited the logic and indeed it was incorrectly filtering spells so I hope this change fixes it. please review with your save.

It’s now working after I got the save file from @PhilPJL. Shared some screenshots as well but prefer him to do the final merge


add remove token support

add remove token support
update version

Codecov Report

Merging #26 into master will increase coverage by 0.09%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #26      +/-   ##
==========================================
+ Coverage   91.68%   91.78%   +0.09%
==========================================
  Files           9        9
  Lines         577      584       +7
==========================================
+ Hits          529      536       +7
  Misses         36       36
  Partials       12       12

Impacted Files
Coverage Δ

dict_util.go
93.95% <100.00%> (+0.16%)
:arrow_up:

dictionary.go
88.00% <100.00%> (+0.76%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5d3b491...d2135bc. Read the comment docs.


Adding new API Version to SharedImageGallery swagger spec

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[x] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

i want to keep the examples folder to follow the convention.
Could we move the examples from the sharedGallery.json to examples/sharedGallery/ folder?
And change the refs in the swagger file accordingly?

change list is here: https://github.com/Azure/azure-rest-api-specs/pull/15039/files/f0fa61f80d2b3eb149e65350ac7cc2dfcc7d3e37..6b8acf666dab90146b4f14ee955a27c84555638b

removing waitingForARM feedback because this is adding new properties, no new API added.

updated the feature branch by bring over gallery/sharedGallery.json and examples for base


How to prevent negative weights / shorting with BlackLittermanModel

I use the following command to create a black litterman model.
But I end up with a mixture of positive and negative weights.
Here is my code.
bl = BlackLittermanModel(S, pi=mu, market_caps=None, absolute_views=viewdict, risk_free_rate=0.01, weights_sum_to_one=True)

rets = bl.bl_returns()
ef = EfficientFrontier(rets, S)

# OR use return-implied weights
delta = black_litterman.market_implied_risk_aversion(market_prices)
bl.bl_weights(delta)
weights = bl.clean_weights()

My output looks like this,
OrderedDict([('aapl', -0.08586),
             ('adbe', 0.02735),
             ('amzn', 0.14253),
             ('ba', 0.02955),
             ('bac', -0.06451),
             ('csco', -0.05583),
........

I checked and the weights actually add up to 1 when the negative values are included, meaning there is shorting involved right?
How do I prevent shorting or negative weights?
If I add up only the positive weights it adds up to 2.67, the negative weights add up to 1.67. How do I make it so that it's long only adding up to 1?

Hi @anarchy89,
Apologies for the slow reply. By definition, bl_weights gives the unconstrained weights that correspond to the views – it is meant to be a "quick" way of seeing which weights correspond to a given set of views.
To calculate constrained weights, you should use the BL returns and BL cov matrix as an input to EfficientFrontier, which is long-only by default.
Hope this helps!
Robert


Unable to run with loam horizon data

Hi, i got the data of loam horizon from your own repo i.e 2020_open_road.bag from https://github.com/Livox-SDK/livox_horizon_loam
However i keep getting, [ScanRegistration-1] process has died and correspondingly a blank screen in RViz.
I have read other threads, but i already have Eigen version 3.3.7 and pcl version -> 1.10.0+dfsg-5ubuntu1.
I am using Ubuntu 20.04 but i meet dependency for the modules used (Eigen, pcl etc.)
Please tell me what suitable changes should i make. And where could i be possibly going wrong?

me too，I also use 20.04 , apear ScanRegistration-2 process had died , i want to know what it is


Remove base64 from protocol

This was a leftover from when the fabric transport was string
based.  Since we can now send raw bytes, we might as well use
them since its more space and time efficient to avoid the base64
encode/decode cycle.
Signed-off-by: Greg Haskins<EMAIL_ADDRESS>

Retracting for now.  Will resubmit on top of gerrit once that infra is fully online.


Fix #456 -- Update pager for message spec v5

It works :sparkles:

@gibiansky Does this look good?
It can be extended further to support more mimetypes, I kept it simple because only string representations were used beforehand.

Looks good.
Can you add support for full display data bundles?
This would involve finding EvaluationResult in Types.hs and editing the pagerOut field to be a [DisplayData], and then fixing all the resulting breakages in Evaluate.hs (there should only be one or two).
Sorry for my non-responsiveness lately, by the way. The work you're doing looks great and I'll get back to it ASAP – I have a big presentation later today and hopefully will have a bit more time to review the big PR soon.

It looks good. I will work on the tests later.
How did the presentation go? I am also stuck with academics, so going slow seems to be a good option for both of us. I use the time I get to go trekking in the source and issues, and it's going good.

@gibiansky It works now. Can you take a look?

@sumitsahrawat Merged this. Made a small change removing IsString; there's no concrete and obvious way to go from String to DisplayData, and it's not really cleaner and doesn't save code.
Haven't pushed it to master yet, waiting for https://github.com/gibiansky/IHaskell/pull/474 to complete Travis tests. Once Travis confirms, will push to master.


When will flang-new be brought in ? General roadmap question about aomp wrt Fortran.

The support for fortran codes in general within ROCm is quite embarrassing.
A number of projects I've worked on for folks at Pawsey, in addition to some of our own projects ( e.g. https://github.com/fluidnumerics/SELF) , that use derived types with type bound procedures, inheritance, and polymorphic types simply don't compile with aomp (separate issues will be open soon) when gpu offloading via openmp is enabled.
It'd be helpful to have some clarification on some rather vague comments (from this issue : https://github.com/ROCm/aomp/issues/576#issuecomment-1639353102 ). Specifically

A: The legacy flang based on the PGI compiler has limited offloading support. So it is not considered production even though it is and has been distributed with ROCm. The production fortran will be the new llvm flang. We cannot discuss schedule here.

What is meant by "limited offloading support" ?
When will ROCm actually have a production fortran compiler via llvm flang-new ?
To extend on this, what Fortran language standard will be fully supported ?

Hi Joe, we are working very hard on flang-new.   It is hard to make statements about the future here.  It  is obvious from upstream LLVM activity that a lot of work for flang-new is upstream.  But it is not ready to switch from flang-legacy to flang-new.

Now that flang-new appears to be in ROCm 6.3, can we now discuss what specific features are now imparted on the amdflang compiler included with ROCm?
From reading other issues related to this one, it appears that amdflang is no longer pointing to flang-legacy. All ROCm docs suggest that AMD just got equipped with a Fortran compiler, which is not really quite true (amdflang has been around for some time ...). What features specifically come with the new compiler?

Hi Joe,  we have not added flang-new to ROCm 6.3 , not sure where  you are seeing this. could you point me at a couple of the links that you mentioned ?

I supppose I'm confused in general about the announcement of the "next-gen fortran compiler" (https://rocm.blogs.amd.com/ecosystems-and-partners/fortran-journey/README.html) ...

The blog post refers to a preview of the new fortran compiler,  an important snippet:
AMD’s Next-Gen Fortran Compiler will be a downstream flavor of LLVM Flang and will in time supplant the current AMD Flang compiler, a downstream flavor of “Classic Flang”.


Subject vs Participant semantics [CT]

See JIRA ticket 503: https://jira.cdisc.org/projects/DDF/issues/DDF-503?filter=allopenissues
"The C174447/Study Arm definition uses the term "subject" while the other definitions use the term "participant". There are several variations in the CT."
The JIRA tickets includes a list of where participant and/or subject is used.
=> Review and see whether based on the JIRA ticket semantics and/or valid value lists need to be changed.
=> Add description to IG (could be to known issues section)

@BSnoeijerCD @dih-cdisc Please see the attached file containing the changes proposed to change 'participant' to 'subject' across the USDM.
Participant vs Subject.xlsx

@EMuhlbradt / @czwickl I had a read, all looks ok, but the devil is in the detail on this one. I trust your judgement, in particular, the impact /alignment across other CDISC areas, e.g. SDTM

@EMuhlbradt / @czwickl

I see now inconsistencies between the inherited variables in the cohort class versus the variables in the master population class. It is better to keep the reference to participant consistent in planned Sex and planned number of Participants. And if possible use the participant/subject reference instead. Also the synonyms can be aligned.
I am not sure whether to remove the participant option from the masking list. Is there a subject option as well that overlapped? Or should we change it then to participant/subject?

@BSnoeijerCD @dih-cdisc : We discussed the possibility of all attributes of the StudyCohort and StudyDesignPopulation classes to inherit, that is, keep the exact semantics of the StudyDefinition class attributes. That change would look like this:
DDF 301.xlsx
Is that really what was intended?

@BSnoeijerCD @dih-cdisc @czwickl : As per our discussion this morning, please see the attached excel with proposed updates to those classes that inherit from PopulationDefinition class so that the inheritance pattern for the semantics in the StudyDesignPopulation and StudyCohort classes are consistent in the terminology.
DDF 301-updated.xlsx
Light red cells/rows indicate no change needed, while red font with yellow cell indicates a change is needed.

Checked final CT spreadsheet. All changes indicated in DDF 301-updated.xlsx included.


Rewording "slug" to "handle"

We got feedback about "slug" being too jargon and difficult to translate. According to the discussion in https://opencollective.slack.com/archives/C019YCG6RCY/p1683021490357799 and looking at what others in the industry are doing, we've decided:

To rephrase "slug" by "handle" in the interface and error messages. (just to clarify, we're not talking about renaming variables or API parameters).
To eventually couple that with a notion of "Profile URL" where it makes sense (for the link preview on the create collective form)

This was resolved by https://github.com/opencollective/opencollective-frontend/pull/8910


Camera projection of second return

Hi, why does convert_range_image_to_point_cloud always return the camera projection points at index 0?
See: https://github.com/waymo-research/waymo-open-dataset/blob/22700eebe8ee92e912c41fe0aa3f3d863f72e2e1/waymo_open_dataset/utils/frame_utils.py#L153
Wouldn't it make more sense to return the masked camera projection of the corresponding return?
i.e.: cp = camera_projections[c.name][ri_index] ?
Another question: What are the six (0-5) channels in camera_projection_compressed?
https://github.com/waymo-research/waymo-open-dataset/blob/22700eebe8ee92e912c41fe0aa3f3d863f72e2e1/waymo_open_dataset/dataset.proto#L200
The provided Colab notebook uses only x and y of the first projection. What is the second projection?
Many thanks in advance!

yeah, you are right. i think it should be ri_index.
//   * channel 0: CameraName.Name of 1st projection. Set to UNKNOWN if no
//       projection.
//   * channel 1: x (axis along image width)
//   * channel 2: y (axis along image height)
//   * channel 3: CameraName.Name of 2nd projection. Set to UNKNOWN if no
//       projection.
//   * channel 4: x (axis along image width)
//   * channel 5: y (axis along image height)
A point can be projected to multiple camera images as cameras' FOV have overlaps.
You may also use the lib provided to do such projection on your own.
https://github.com/waymo-research/waymo-open-dataset/blob/master/third_party/camera/ops/py_camera_model_ops.py

Is there some tutorial or guide available describing how to build and import the third party camera package?
I have implemented the box projection on my own with the help of your code in other issues and it works mostly as expected. However, the projection on the side cameras are a little bit off.
An interesting observation: I projected 3d boxes containing at least one lidar point to the image, clipped them to 2d boxes and compared the results with the given projected 2d labels. It turns out that there are projected labels given when they contain at least one point in the image space, not in the 3d space. In my opinion that does not make much sense, because the points within theses labels does not always relate to them.

This test has an example.
https://github.com/waymo-research/waymo-open-dataset/blob/master/third_party/camera/ops/camera_model_ops_test.py

I know how to use the python code. But how do I insert it in my project. Is there a way to include a specific path or folder. Or do I have to copy the python file and all needed binaries in a separate folder?
Where do I find all the needed files?

It is pre-compiled in the pip package.
from third_party.camera.ops import py_camera_model_ops

It is pre-compiled in the pip package.
from third_party.camera.ops import py_camera_model_ops

Thank you! I didn't expect that...

Actually, i am not sure now. Let me know if it works. If not, we can update the pip package to add it.
You can also compile on your own to include it.

It is not included. I added it on my own to the package. What does world_to_image exactly expect? When I call it as in
https://github.com/waymo-research/waymo-open-dataset/blob/master/third_party/camera/ops/camera_model_ops_test.py
with the lidar points as an input, I get [0, 0, 0] for each point?!

They are in world frame (a.k.a. global frame).  See this comment .
So you need to first transform the points to world frame by using pose.
Something like:
vehicle_to_world = tf.reshape(tf.convert_to_tensor(pose.transform.data), [4, 4])
point = [x,y,z,1]
vehicle_point = tf.matmul(vechiel_to_world, point)[0:3]

Thank you for your help! Everything works out fine for me now. Please add the third_party camera projection to the python package and fix the ri_index in camera_projection_compressed.

FYI, i've added the lib to package waymo-open-dataset-tf-2-2-0 but not for other tf versions yet.

FYI, i've added the lib to package waymo-open-dataset-tf-2-2-0 but not for other tf versions yet.

Thank you! However, I made a few changes to meet my requirements. The toolchain for building and packing within the repo works like a charm.


Memory leak

I'm using rails-admin for a while, in the last couple of weeks i started to suffer from a memory leak.
I use Skylight (Code profiler) and I saw that rails_admin require allot of memory.
Then I opened up heroku metrics before and affter use on rails_admin, he is the results:
http://prntscr.com/bvcvkd
The memory usage raises from 160MB to 317MB. The graph is becoming stable only after i stopped using the admin panel

I'm seeing similar behaviour here. It's been a long time in my case.

+1 Same here..

I suspect the same for me!

next to the pretty graphs, are there further details you can provide? any suspects?

Same here, on my side, it happens on a CSV export where it needs at least 300MB of RAM to generate the file (which is around 20MB). I didn't have the time to investigate further, so I'm using Monit right now to restart nginx when the memory goes too high.

If anyone is interested, I've found a better workaround for my use case. At first, I'm able to reproduce the memory leak with Passenger and a table with around 10K rows (no less). Basically, I export the table as a CSV file and then everything that was built within @objects stay in memory forever, as long as the worker is running (I'm suspecting the closure which defines the export action to keep the reference longer than expected).
In main_controller.rb, I've added an after_action to mark the mem ready to gc:
    def mark_for_garbage_collect
      if action_name == 'export' && request.method == 'POST'
        ObjectSpace.garbage_collect
      end

      if Rails.env.development?
        current_class = @abstract_model.model_name.constantize
        logger.debug "#{current_class}: #{ObjectSpace.each_object(current_class).count}"
      end
    end

I also encountered significant memory increases using rails admin on our site (the uptick in our heroku memory graphs looks very similar to the one posted by @rotem443).
The memory usage is exacerbated since we use puma with 3 workers (recently decreased to 2 workers to alleviate our R14 warnings in heroku).
From locally testing a few times, it seems that loading the admin index/dashboard for the first time (after loading our site's home page) increases the memory of a single rails process by 20-60MB. Our dashboard has about 40 models.
With each additional worker, I see a similar uptick. Here are a couple of samples:
==========
Single rails process:
206MB - startup and loading homepage
247MB - load admin index (increase 39MB)
252MB - load admin index (increase 5MB)
263MB - load admin index (increase 11MB)
268MB - load admin index (increase 5MB)
268MB - load admin index 5 times sequentially (no increase)
272MB - load admin index (increase 5MB)
272MB - load admin index (no increase)
282MB - load admin index 10 times sequentially (increase 10MB)
==========
puma 2 workers, 1 thread each
190MB - start up
361MB - load home page (increase due to activating worker A)
536MB - load home page (increase due to activating worker B)
566MB - load admin index (increase 30MB for worker “A”)
579MB - load admin index (increase 13MB for worker “A”)
591MB - load admin index (increase 12MB for worker “A”)
658MB - load admin index (5 times sequentially, increase 67MB for worker “B” - first time worker B received admin request)
668MB - load admin index (5 times sequentially, increase 10MB across A and B)
==========
puma, 2 workers, 1 thread:
545MB - after booting and loading homepage multiple times so that both workers have been activated and have received requests
563MB - load admin index (increase 18MB for worker A)
590MB - load admin index (increase 27MB for worker A)
621MB - load admin index (increase 31MB for worker A)
617MB - load admin index (decrease 4MB for worker A)
621MB - load admin index (increase 4MB for worker A)

I also had this using puma. it dont have logs, but i can pretty well remember tha i was swapping a lot on a 4 gig machine using puma, 4 workers.
moving to passenger standalone (and therefore also with system-nginx), i only have a overall consumtion of 1.7GB, and the app was growing meanwhile.
just in case it helps. cheers

using puma and rails 5.0.1 had a problem when tried to search for admin dashboard; memory went to 6.5 gb from 2 gb

+1 using railsAdmin 1.1.1

I am also facing them same problem. The memory raise very fast and eventually puma crashed.

Was this using pundit? Maybe this helps? https://github.com/sferik/rails_admin/issues/2575#issuecomment-270688893

I'm facing this issue as well, very often when I try to edit a record In Heroku it throws a memory issue.


test(siderbar): convert to RTL

Fixes #12
I did comment out the things that are left to be refactored.
My recommendation is to uncomment a describe block & work on it, that would sort of make the flow better, since the tests are now all passing, the ones that aren't have been commented out.

@emma-r-slight Will continue working on this :raised_hands:

Close in favor of #40


Type inference fails chaining call on the return value of @resultBuilder

Description
We have a SwiftUI-ish declarative API built on top of UIKit from pre SwiftUI days, and have evolved it to use resultBuilder APIs. We have a result builder that type checks fine, but a few of our API's that are chained in one expression on the return value of the resultBuilder fails.
From reading about the changes I don’t understand why it breaks. We have a Stack builder API that returns a Stack1 -> StackN types, with N different buildBlock functions in the result builder. The expressions are valid to type check independently, and there’s no side propagation like mentioned here. We do use the builder to determine a generic result type, and that seems to work, and be inline with the OneWay constraint explanation. I'm not sure I understand the nuance of "back-propagation" as explained above tho.
Steps to reproduce
Code below, problematic call sites up top, stripped down types below.
// This is HopperUI code, not SwiftUI code, an in-house declarative UI built pre SwiftUI.
// These examples are useless UI wise, but minimize the compiler issue
enum KeyPathNotInferred {
    func previousCallSite() -> some ViewRepresentable {
        Stack.vertical() {
            StyledString(content: "Hi")
        }
        .aligning(anchors: [\.bottomAnchor])

        // ERROR: Cannot convert value of type '[Any]' to expected argument type '[(StackViewOne<StackViewOne<UILabel>>) -> Anchor]'
        // ERROR[Stack.vertical line]: Generic parameter 'Anchor' could not be inferred
    }
    func closureIsOk() -> some ViewRepresentable {
        Stack.vertical() {
            StyledString(content: "Hi")
        }
        .aligning(anchors: [{ $0.bottomAnchor }])
    }
    func breakUpIsOk() -> some ViewRepresentable {
        let stack = Stack.vertical() {
            StyledString(content: "Hi")
        }
        return stack.aligning(anchors: [\.bottomAnchor])
    }
}

enum ChainedResultBuilderIgnored {
    func previousCallSite() -> some ViewRepresentable {
        Stack.vertical() {
            StyledString(content: "Hi")
        }
        .withFooter {
            StyledString(content: "Hi")
        }
        // ERROR: Cannot convert value of type 'StyledString' to closure result type '[ListItem]'
    }

    func breakUpIsOk() -> some ViewRepresentable {
        let stack = Stack.vertical() {
            StyledString(content: "Hi")
        }
        stack.withFooter {
            StyledString(content: "Hi")
        }
        return stack
    }
}

import UIKit

// Basic protocol for view declaration.
// Views are constructed via the constructed generic View hierarchy, and then updated as needed.
protocol ViewRepresentable {
    associatedtype View: UIView
    func configure(view: View)
}
struct StyledString: ViewRepresentable {
    let content: String
    func configure(view: UILabel) {}
}

// Basic Stack structure
class StackViewOne<First: UIView>: UIStackView {
    var first = First()
}
struct Stack {
    struct One<First: ViewRepresentable>: ViewRepresentable {
        let first: First
        func configure(view: StackViewOne<First.View>) {
            first.configure(view: view.first)
        }
    }

    @resultBuilder
    enum Builder {
        static func buildBlock<First: ViewRepresentable>(_ first: First) -> Stack.One<First> {
            Stack.One(first: first)
        }
    }
    static func vertical<StackType: ViewRepresentable>(@Builder build builder: () -> StackType) -> StackType {
        builder()
    }
}

protocol AnchorType {}
extension NSLayoutYAxisAnchor: AnchorType {}
struct AnchorAlignment<Content: ViewRepresentable, Anchor>: ViewRepresentable {
    let content: Content
    let anchors: [(View) -> Anchor]

    func configure(view: Content.View) {}
}

extension ViewRepresentable {
    func aligning<Anchor: AnchorType>(anchors: [(View) -> Anchor]) -> AnchorAlignment<Self, Anchor> {
        .init(content: self, anchors: anchors)
    }
}

// A shell version of an erased item that provides identity + a body for driving UITV
struct ListItem {
    let body: any ViewRepresentable
}

// A List Builder to transform ViewRepresentables into ListItem.
// Real version automates a good chunk of identity
@resultBuilder
enum ListBuilder {
    static func buildExpression<View: ViewRepresentable>(_ expression: View?) -> [ListItem?] {
        [expression.map { .init(body: $0) }]
    }

    public static func buildBlock(_ components: [ListItem?]...) -> [ListItem] {
        components.flatMap { $0.compactMap { $0 } }
    }
}

// A component that joins a screen body with a footer representation.
struct WithFooter<T: ViewRepresentable>: ViewRepresentable {
    let body: T
    let footer: () -> [ListItem]

    func configure(view: T.View) {}
}

extension ViewRepresentable {
    func withFooter(@ListBuilder build: @escaping () -> [ListItem]) -> WithFooter<Self> {
        return .init(body: self, footer: build)
    }
}

Expected behavior
I would expect the return value from the resultBuilder to be fully type checked and able to chain additional calls.
Environment

Swift compiler version info 5.8 /
Xcode version info 14.3
Deployment target: Any

cc @xedin

Ah, interesting. What change do you think caused this? I sort of defaulted to the ResultBuilder changes since there was a notice of possible breaking source changes.
Do you think this explanation applies to both problems? It makes some sense  that closures work instead of key paths, since the closure probably defers or alters the resolution a little.
But for WithFooter seems a little different. The fact that it finds the extension, but doesn't apply the list builder is bizarre. I added another multi-line / non-result builder and it works ok:
extension ViewRepresentable {
    func withFooterNoBuilder(build: @escaping () -> [ListItem]) -> WithFooter<Self> {
        return .init(body: self, footer: build)
    }
}

extension ChainedResultBuilderIgnored {
    func noBuilderOk() -> some ViewRepresentable {
        Stack.vertical() {
            StyledString(content: "Hi")
        }
        .withFooterNoBuilder {
            let useMultiLineClosure = ListItem(body: StyledString(content: "Hi"))
            return [useMultiLineClosure]
        }
    }
}

Result builders are type-checked as regular multi-statement closures with some implicitly added expressions inside, switching to that is what inference mode is what this regression, so a fix would work for both.

The fact that it finds the extension, but doesn't apply the list builder is bizarre.

Yes, this is indeed interesting, I'm trying to figure out why wouldn't it apply the builder in this case.

Okay this is the same kind of problem as other examples, withFooter closure is resolved too early (before the result type of StackType is resolved which means that it cannot pick up @ListBuilder from the overload.

I've reverted the fix because it caused other issues so this has to be re-opened.


Leaderboard fixes

bug Bug 90931: Leaderboard does not respect the "timestamp" passed in fixed

Enhancement 90887: Align column titles
Bug 90900: Duplicate "Home" in navigation

@BenGWeeks, tested. All bugs and enhancements are resolved. This is ready to be merged.