How to get the resolved types of the arguments of a callback function

Hi. Long time user so thanks for creating a great project!
I'm working on a new rule which basically tells when you are typing arguments of a callback function when this is not needed because the compiler figured out the type on its own (following a typescript coding standard that you should only explicitly type when it has added value).
I have the following piece of test code.
interface TestInterface {
	readonly prop: number,
}

const testVariable: TestInterface = {prop: 1}

const chain = <T>(input: T) => ({
	chainFunction1: (callback1: (arg: T) => T) => ({
		chainFunction2: () => callback1(input),
	}),
})

const result = chain(testVariable)
	.chainFunction1(arg => arg)
	.chainFunction2()

Typescript naturally knows what the type of arg is:

Now I'm trying to access that resolved type in the compiler API.
I'm able to access the resolved type of outer function using the TypeChecker of typescript, but so far I'm unable to access the type of the arguments of the callback. I'm looking for help in achieving this.
(PS: If questions about creating new rules should be placed elsewhere or formatted differently please let me know!)

Unfortunately the TypeChecker has no method to retrieve the contextual type of a specific parameter, so you have to get the contextual type of the function expression and loop though the parameters:
declare var node: ts.FunctionExpression | ts.ArrowFunction;
const type = tc.getContextualType(node);
if (type !== undefined) {
    for (const param of type.callSignatures[0].parameters) {
        param.type; // do whatever you want with the type
    }
}

It's great that you want to tackle this rule. I guess this will find a lot of unnecessary type annotations.
There are even plenty of them in this repo. For example:
ts.forEachChild(ctx.sourceFile, function cb(node: ts.Node): void { return ts.forEachChild(node, cb); });
                                                  ~~~~~~~ [unnecessary type declaration]

Hey @ajafff. Thanks for the quick and detailed response. I'll try your suggestion this afternoon when I continue work on this topic.
Also it's good to know you recognise the use case. It's especially relevant my team because we rely on the chaining methods of Lodash a lot. As these are quite complex to type the typings are continuously improved. Sometimes typings that were once needed (because the type checker could not figure out the argument types by it self) are now obsolete. It's nice to catch these cases.

Ok, so I'm working on this rule and using your input I was able to retrieve the types of the parameters in my example code. But unfortunately an other piece of code gave me a false negative, despite appearing to me as having comparable syntax (an arrow function in a Lodash chain):
import {chain} from 'lodash'

interface TestInterface {}

const testArray: TestInterface[] = []

chain(testArray)
	.flatMap(testElement => testElement)

Typescript once again perfectly types the testElement as having the type TestInterface. Yet the contextual type of the ArrowFunction has zero callSignatures, resulting in my previous setup not bing able to find the type of the testElement parameter.

Is that problem specific to ArrowFunction does it occur for a FunctionExpression, too?
/cc @andy-hanson maybe you can share your experience about using the type checker?

Good question, just tried out:
chain(testArray).flatMap(function(testElement) { return testElement })

giving met the same 0 callSignatures

Just a guess: the declared type of chain has iteratee: ListIterator<T, Many<TResult>>|string, so you may be looking at a union type instead, and have to break it into its constituent types.

@andy-hanson haha spot on with the declared type of chain :)
Using your insight I was indeed able to fix this false negative. On to the next false negative. This seems like quite a complicated problem so there's a good chance you'll see me coming back here.
Indeed I found the isUnionType function. It's actually part of 4 different rules so moving it to tsutils might make sense


WBEC box not constantly available after upgrade to 0.41

After upgrade and reset, the availbility of wbec is really limited. It got even worse. Ping to wbec is also loosing packages. Any advice is appreciated. Do other users have a similar impression regarding the stability after the upgrade?
Cheers!

wbec 0.4.2 will have an optional parameter cfgWifiSleepMode:
"cfgWifiSleepMode":0  => WIFI_NONE_SLEEP
"cfgWifiSleepMode":1  => WIFI_LIGHT_SLEEP
"cfgWifiSleepMode":2  => WIFI_MODEM_SLEEP
If it has a different value or is not set at all, then there's no change (i.e. WiFi.setSleepMode() is then not called).

I have installed now version 0.4.2. Will report on the long-term behavior of wbec, but until now it is looking well.
You may consider to update the wiki regarding the additional configuration.
Let´s close the discussion here then.


refresh 7

dashboard

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-dashboard


[Lor-63] Login refactor

Add Localizable Strings for loginview;
Add LB.Strings to LoginView;
Adjust LBColors;
Refactor rules for login;
Use Email.Validate;
Ajust padding;

changed the base branch from main to develop and changed the title:  [Lor-63] Login refactor

Colocar tudo em maiúsculo [LOR-63]


#0: Target specific test file in model perf for ttnn resnet to avoid import conflicts

Checklist

[ ] Model regression CI testing passes (if applicable)

Hi, please undo the Llama submodule hash change

I've removed the submodule updates


Option to use workspace version of Pyright with Pylance

We're using Pylance in combination with an independent version of Pyright (for pre-commit hooks and CI). When Pylance is updated we have to rush to update our version of Pyright - otherwise, the issues reported by VSCode are mismatched with the results from the Pyright CLI (our source of truth).
This is, unfortunately, quite frustrating. Asking all of our developers to pin a specific version of Pylance is not a great solution because that requires manual effort on their end for every update - VSCode does not make it easy to set versioned extension recommendations either.
VSCode offers the ability to specify the version of TypeScript used:

Would it be much trouble to allow Pylance to use the workspace version of Pyright (if available in NODEPATH)?

Another solution here might be to have a CLI for pylance. Then the CI could just pull the latest one of Pylance and it should always match.


[FEATURE REQ]  After click on book button, Change room toast message should be stay at least 3 second for proper readability

Description
After click on book button, Change room toast message should be stay at least 3 second for proper readability
Steps to Reproduce

Visit the URL
Click on book button
The toast message gets invisible very fast

Expected message
Toast message should be stay at least 3s

hey can i work on this issue

this is no longer required as we are moving to the My events page after booking a room, so the current duration is fine.
FYI @Sauhard74 @kmsalmanrahman


Random series should return 0.5?

Random series should return 0.5, but:
a=np.random.randint(100,size=(300))
H, c, data = compute_Hc(a)
print(sname,"H={:.4f}, c={:.4f}".format(H,c))

Not random series, but the random walk should generate H=0.5 and actually does:
L = 99999
series = np.array([0.] * L)  # random walk series
for i in range(1,L):
    series[i] = series[i-1] + np.random.randn()

H, c, data = compute_Hc(series)
print("H={:.4f}, c={:.4f}".format(H,c))

H=0.4999, c=1.4671

Thanks.


fix: logo image & link

fix: issue #26
[x] added logo image and link to index.html (homepage)
[x] working fine with no errors
This PR is with GSSOC'23.

Hello @ydv-ankit ydv-ankit   brother there is conflict in your PR please correct conflict then commit.


Invalid or missing JWT token

Version Information

Package Version: 2.3.0
Operating System:  Linux

I am trying to run the text generation client. It is initialized with my usual BAM key,
credentials = Credentials(api_key=keys[0])
self.client = Client(credentials=credentials)
Then sa I run the generation
self.client.text.generation.create(
                       model_id=self.model_id,
                       inputs=prompts,
                       moderations=self.moderations,
                       execution_options=CreateExecutionOptions(ordered=False),
                       parameters=self.parameters,
                   )

I get the error
genai.exceptions.ApiResponseException: Failed to handle request to https://bam-api.res.ibm.com/v2/text/generation/limits?version=2023-11-22.
{
  "error": "Unauthorized",
  "extensions": {
    "code": "AUTH_ERROR",
    "state": null,
    "reason": "TOKEN_INVALID"
  },
  "message": "Invalid or missing JWT token",
  "status_code": 401
}

Is the issue with my BAM key? What is the JWT token?
Thank you!

Update: the save code worked when I have provided the credentials using the dotenv.

BAM Key is the JWT token.
The TOKEN_INVALID error message indicates that the key you have passed on is not an actual API Key.
API Key should be in the format pak-4.... You can print the values of your Credentials instance print(credentials.api_key.get_secret_value()).

Thank you, Tomáš, I worked it out.
Regards,
Josef
On Wed, 24 Apr 2024, 16:33 Tomáš Dvořák, @.***> wrote:

BAM Key is the JWT token.
The TOKEN_INVALID error message indicates that the key you have passed on
is not an actual API Key.
API Key should be in the format pak-4.... You can print the values of
your Credentials instance print(credentials.api_key.get_secret_value()).
—
Reply to this email directly, view it on GitHub
https://github.com/IBM/ibm-generative-ai/issues/349#issuecomment-2074962385,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACOBU6WKUMLRLFX36MRQRF3Y66YB5AVCNFSM6AAAAABGM7K3Z6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZUHE3DEMZYGU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add Authentication for Author Login

Description
Add Authentication for Author Login

Authenticating users directly using Django users. I created two templates for login and singup.
Changes have to merged to main.


Convert control map from 8/8/8 to 5/5/3/1

See discussion here: https://github.com/outobugi/Terrain3D/discussions/64
Currently control paints and reads RGB8 in 8/8/8 bit floats as base/overlay/blend.
Convert to 16-bit integer:

5 base,
5 overlay,
3 bits as an index into a blend value array: [0, .125, .25 .334, .5, .667, .75, .875, 1]
1 for autoshader
1 for holes
the rest reserved

This will give us a limit of 32 textures, and use 15 bits out of 16/24/32.
Also see #64, #4, #60

Out of curiosity , wouldn't this give a performance improvement by pushing more the 32 texture limit?

We already hard limit the texture count to 32. The new control map format keeps that limit. All it does is compress 32 texture index stored in 8 bits to 5 bits. No performance difference.


Add JsDoc to Components

[x] avatar
[ ] badge-wrapper
[ ] badge
[ ] banner
[ ] base-button
[ ] bottom-navigation
[ ] button
[ ] checkbox
[ ] divider
[ ] icon-button
[ ] modal
[ ] progress-indicator
[ ] radio-group
[ ] radio
[ ] row
[ ] segmented-button
[ ] step-indicator
[ ] textfield
[ ] toast

I would like to contribute to this task.


New package: PLSRegressor v1.1.0

Registering package: PLSRegressor
Repository: https://github.com/lalvim/PLSRegressor.jl
Created by: @lalvim
Version: v1.1.0
Commit: eddb23f96e2a71bd751c3809a1767c04b6b83092
Git reference: master

Don't know how o solve it. I think my version is it ok, but the problem with automerge persists.

Ping me in one day and I will merge manually

I performed a new commit that solved some deps. However, I can not send another request. I want to remove this. Later, for th think the same automerge problem will happen.

You can make a new registration now.
Ping me after 3 days and I will merge manually.


TL 1.4

I updated my TL from version 1.4 to 1.7 and now I get mostly a A / V desync. It is still desync when I import the file to Sony Vegas Pro for edits.
Would you please offer a download for the old 1.4.2 or 1.4.3 version of TL (I forgot which one it was). I don't know why but it worked perfectly for me (Windows 7). Unfortunately I don't have this version on my PC anymore and I also can't find it in the internet anymore.
Mabye someone can give me a download link.
Thank you

By desync you mean like the video is before the audio right? It's happening to me as from like an hour ago. It was working fine earlier today.

A/V desync has been discussed in nearly 30 issues. There are no changes I could apply.


Template and Playbook Readme review

Very good use of Markdown.  Though I suggest a lot of edits (e.g., to use active voice and more definite language such as 'is' rather than 'should), I think the readme is good.  The one open question is whether we should define the set available options, such as dashboard_tabs, header_action_buttions, etc. so one knows what they are. FWIW, (if we were to include such a description), I would prefer this be in the template file rather than the readme.

These commits were cherry-picked.


Bolt 3

Hey,
this PR makes it Bolt 3 compatible.
Your Steps
In order to keep this maintainable, please follow the following steps:

Make a bolt-v2 branch from master
Merge this PR into master
Create a new release 2.0 from master
Go to extensions.bolt.cm, login to your account, go to your profile and click the update button for this theme

This way you can still maintain the Bolt 2 version of this theme in the bolt-v2 branch.
New releases of the Bolt 2 theme will have 1.x versions and the Bolt 3 theme will have 2.x versions.

Thank you


Can't install

I followed the instructions but when running eslint I get
1:1  error  Definition for rule 'write-good-comments/write-good-comments' was not found  write-good-comments/write-good-comments

Oops, forgot to add it into 'plugins' section first.


disallow reserved names

We now disallow the reserved .. and . filenames. They are only allowed as destinations of move or copy operations.
supersedes https://github.com/cs3org/reva/pull/4721

      | dav-path-version | file-name | http-status-code |
      | old              | /.        | 500              |
        Failed step: Then the HTTP status code should be "500"
        HTTP status code 400 is not the expected value 500
        Failed asserting that 400 matches expected '500'.

need test adjustment in ocis. and for that we need this to be merged first and then reva bump in ocis


⚠ Cioos National CKAN Sitemap has degraded performance

In f4f520b, Cioos National CKAN Sitemap (https://catalogue.cioos.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 17816 ms

Resolved: Cioos National CKAN Sitemap performance has improved in d693c4d after 6 minutes.


accesschk is a duplicate

Access check is found in sysinternals suite, also available in the bucket.
Maybe this should be removed or does it warrant a standalone install?
accesschk.json
sysinternals.json

+1 to delete all the sysinternals apps: accesschk, autoruns, procexp, pstools, strings, and whois


Handle case where there is no key_conv_fn defined

riak_kv_vnode:handle_coverage_fold/8 may not have a key_conv_fn option supplied, which results in a serious 2i failure without this fix.

It is papering over a deeper issue with index_fsm, for which a fix is proposed in #1410.
It can be merged as a last resort, but it will only help to avoid the crash in secondary index listing, with these symptoms:
{error,\n    {worker_crash,\n        {{badfun,undefined},\n         [{riak_kv_coverage_filter,'-build_preflist_fun/3-fun-0-',4,\n ...

+1 eae9c78


Set up skeleton for archive service project

What is this PR trying to achieve?
Adds the skeleton for the archive service project.
Who is this change for?
Archivists, developers, etc.

We should teach travistooling to ignore changes here, but it doesn't block merge.


document instead of schema

Following the spec definitions this should be called document

There are some variables that need renaming to document as well

think we are sticking with schema and meta schema as the vocabulary


Refactor - Version

[x] Check Latest Version
[ ] Auto Download

move Auto Download  to ipgw uodate


[Bug]bin size 257 cannot run on GPU

I run LightGBM-GPU on centos and get this error. I set device_type=gpu,max_bin =63,and I didn't set any categorical feature in my train.conf. Why does this happen?
here is my train.conf .
train.conf
# task type, support train and predict
task = train

# boosting type, support gbdt for now, alias: boosting, boost
boosting_type = gbdt

# application type, support following application
# regression , regression task
# binary , binary classification task
# lambdarank , lambdarank task
# alias: application, app
objective = binary

device_type=gpu

# eval metrics, support multi metric, delimite by ',' , support following metrics
# l1
# l2 , default metric for regression
# ndcg , default metric for lambdarank
# auc
# binary_logloss , default metric for binary
# binary_error
metric = binary_logloss,auc

# frequence for metric output
metric_freq = 1

# true if need output metric for training data, alias: tranining_metric, train_metric
is_training_metric = true

# number of bins for feature bucket, 255 is a recommend setting, it can save memories, and also has good accuracy.
max_bin =63

# training data
# if exsting weight file, should name to "binary.train.weight"
# alias: train_data, train
data = sample_data.train

# validation data, support multi validation data, separated by ','
# if exsting weight file, should name to "binary.test.weight"
# alias: valid, test, test_data,
valid_data = data.test

# number of trees(iterations), alias: num_tree, num_iteration, num_iterations, num_round, num_rounds
num_trees = 150

# shrinkage rate , alias: shrinkage_rate
learning_rate = 0.08

# number of leaves for one tree, alias: num_leaf
num_leaves = 63

# type of tree learner, support following types:
# serial , single machine version
# feature , use feature parallel to train
# data , use data parallel to train
# voting , use voting based parallel to train
# alias: tree
tree_learner = serial

# number of threads for multi-threading. One thread will use one CPU, defalut is setted to #cpu.
# num_threads = 8

# feature sub-sample, will random select 80% feature to train on each iteration
# alias: sub_feature
feature_fraction = 0.8

# Support bagging (data sub-sample), will perform bagging every 5 iterations
bagging_freq = 5

# Bagging farction, will random select 80% data on bagging
# alias: sub_row
bagging_fraction = 0.8

# minimal number data for one leaf, use this to deal with over-fit
# alias : min_data_per_leaf, min_data
min_data_in_leaf = 50

# minimal sum hessians for one leaf, use this to deal with over-fit
min_sum_hessian_in_leaf = 5.0

# save memory and faster speed for sparse feature, alias: is_sparse
is_enable_sparse = true

# when data is bigger than memory size, set this to true. otherwise set false will have faster speed
# alias: two_round_loading, two_round
use_two_round_loading = false

# true if need to save data to binary file and application will auto load data from binary file next time
# alias: is_save_binary, save_binary
is_save_binary_file = false

# output model file
output_model = LightGBM_model.txt

# support continuous train from trained gbdt model
# input_model= trained_model.txt

# output prediction file for predict task
# output_result= prediction.txt

# number of machines in parallel training, alias: num_machine
num_machines = 1

# local listening port in parallel training, alias: local_port
local_listen_port = 12400

# machines list file for parallel training, alias: mlist
machine_list_file = mlist.txt

# force splits
# forced_splits = forced_splits.json

did you use the code from the latest branch?

did you use the code from the latest branch?

I install GPU version according to your offical document. It is supposed to be the latest version right?

Your grid contains values for max_bins that are > 255 while they are supposed to be lower than 255 (255 is the max possible value). For these instances, fitting will fail and result in a nan score. FROM SKLEARN
前几天在sklearn那提问得到的回复，不知道能否适用

Your grid contains values for max_bins that are > 255 while they are supposed to be lower than 255 (255 is the max possible value). For these instances, fitting will fail and result in a nan score. FROM SKLEARN
前几天在sklearn那提问得到的回复，不知道能否适用


chore(RHTAPREL-667): remove all CR default values from tasks

This commit removes default CR snapshotPath and dataPath
values from tasks.
Signed-off-by: Leandro Mendes<EMAIL_ADDRESS>

Changes look good. In the commit body, RPA path defaults are removed too, not just data and snapshot. Also, I think the task READMEs need update as they typically have the default value stored

Sure thing. I moved it to ready because I wanted e2e to run, but I will do the requested changed. Thanks for saying!

Changes look good. In the commit body, RPA path defaults are removed too, not just data and snapshot. Also, I think the task READMEs need update as they typically have the default value stored

Sure thing. I moved it to ready because I wanted e2e to run, but I will do the requested changes. Thanks for saying!

ack, fyi you can do /test all on a draft pr to run the prow tests without moving it to ready

/test release-pipelines-e2e-suite

/retest

/retest

/test release-pipelines-e2e-suite

Thanks for the detailed review, @johnbieren. Impressive eyes. PTAL!

/test

/retest

/retest

/test release-pipelines-e2e-suite

/test release-pipelines-e2e-suite

@jinqi7 can you help me to find out why is e2e failing for this PR?

/test release-pipelines-e2e-suite

/test release-pipelines-e2e-suite

@jinqi7 can you help me to find out why is e2e failing for this PR?

There is no issue in e2e checking from my test.  https://redhat-internal.slack.com/archives/C04J47GL936/p1714461338691199?thread_ts=1714460928.326559&cid=C04J47GL936


Show alternative if do not want to take next toll

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. For example:
I'm always frustrated when [...]
Describe the ideal solution
A clear and concise description of what you want to see in Organic Maps.
Describe alternatives you have considered

How do you solve this issue now with Organic Maps or other apps?
Attach any examples, screenshots, or screen recordings from other apps that help us to better understand the idea.

Additional context
Add any other context or screenshots about the feature request here.

Related to #30.


Git Bash terminal in VS code adding Git breaking environment variables and we can't permanently remove them.

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: latest
OS Version: Windows 10

Steps to Reproduce:
The issue is that VS Code bash sessions will automatically add a HOME env variable even if we try to unset and prevent it all together. This HOME variable leads to git issues, and others have experienced this too but no permanent solution has been identified.
This issue breaks git functionality and randomly started occurring. I have a .bash_profile file that I have added unset HOME to the contents to try to solve it, however it didn't work. I tried specifying HOME: null in the vscode settings.json, and that didn't work.

Open a git bash terminal, type "set | less" find the HOME env variable
Unset it in the current bash terminal and then open another one and you'll see that it's back
Add unset HOME to .bash_profile but VS code will still overwrite that and bring it back

The issue is that VS Code bash sessions will automatically add a HOME env variable even if we try to unset and prevent it all together.

@NickRok, I do not believe that is the case as the vscode.git extension does set some environment variables but it does not set the HOME environment variable. VS Code, and the vscode.git extension inherits the environment variables from the environment from which VS Code is being launched.
Do you by any chance have this extension installed? If so, could you disable it, close all instances of VS Code, start VS Code and see if you can repro the issue? Thanks!


Adds user-level TextWriter and BinaryWriter

This PR introduces user-level wrappers for the RawBinaryWriter
and the RawTextWriter. These higher-level types manage a
symbol table and so can convert between text and symbol IDs,
adding new symbols when appropriate.
This PR also renames the RawWriter trait to Writer, as the
methods in its interface are applicable to both the raw and user
views of data.
This PR does NOT add unit tests for these wrapper types. One or
more follow-on PRs will add full integration with ion-tests,
providing exhaustive correctness testing.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This PR is not yet ready for review; I'll reopen it when it's complete.

Superseded by #360.


Only set necessary babel opts in babel-jest

Summary

Does not add istanbul ignore next comments if you're not instrumenting.
The transform cache key now depends on bebel-jest itself as well.
babel-core is lazily loaded - so if you have a fully primed cache, you never load babel.

Test plan
npm test.
Used it in a project.

sweet!


add support for import from s3

This pull request adds support to import data from S3.
I also improved the way to handle S3 parameters in input and output arguments.
It is now possible to define input or output argument as s3 connectionstring.
For example:
elasticdump --input=s3://bucket_name/filename.json --output=http://localhost:9200/index_name --s3AccessKeyId "XXX" --s3SecretAccessKey "XXX"

For this i used the library s3urls to detect which transport should be used.
In theory the arguments s3Bucket and s3RecordKey are no longer needed.
My updated code has no breaking changes.
When my code is okay, i will update the docs.

For backward compatibility reasons, please ensure that if s3Bucket and s3RecordKey are supplied it would generate a valid s3 url.
Thanks for this change

You are right. I updated the code.
So this command is also working:
elasticdump --input=http://localhost:9200/index_name --s3Bucket "bucket_name" --s3AccessKeyId "XXX" --s3SecretAccessKey "XXX" --s3RecordKey "filename.json"

Thanks also add the docs and we should be good to merge. Thanks for your contribution

Ready to merge ?

will merge into #536


Documentation is incomplete on how to build with zoslib

I wasn't able to compile using the options specified for C. I haven't whittled it to the minimum but found that:
-fzos-le-char-mode=ascii -D_XOPEN_SOURCE=600 -D_ALL_SOURCE -D_OPEN_SYS_FILE_EXT=1 -D_AE_BIMODAL=1 -D_ENHANCED_ASCII_EXT=0xFFFFFFFF  -DZOSLIB_OVERRIDE_CLIB=1 -DZOSLIB_OVERRIDE_CLIB_GETENV=1

worked.
Without at least some of those additional options, the header files spit out numerous errors.
@IgorTodorovskiIBM fyi

It also isn't clear how to link... I tried:
clang -L "${ZOSLIB_ROOT}/lib" -lzoslib $TC.o -o $TC

as well as the same with clang++ and both result in a bunch of unresolved refs to C++ functions. Presumably this is because my 'main' is C but it's pulling in C++ code from the archive but I'm not sure how to tell clang/clang++ what to do
@IgorTodorovskiIBM fyi

First unresolved ref:
./build
 IEW2456E 9207 SYMBOL
          _ZNSt3__16_ASCII15basic_streambufIcNS0_11char_traitsIcEEE6xsputnEPKcl
          UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL
          LIBRARY.
 IEW2456E 9207 SYMBOL
          _ZNSt3__16_ASCII15basic_streambufIcNS0_11char_traitsIcEEE5uflowEv
          UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL
          LIBRARY.

Found a solution after digging through z/os open tools. It appears I also need -lzoslib-supp (not sure if the celquopt.s.o is required).
clang++ -fzos-le-char-mode=ascii -L "${ZOSLIB_ROOT}/lib" "${ZOSLIB_ROOT}/lib/celquopt.s.o" -lzoslib-supp -lzoslib driver.o $TC.o -o $TC

@IgorTodorovskiIBM and @perry-ca : Please confirm/deny the following:

the zoslib code is a C++ object (either .so or .a).

as such, the current clang++ 'bind' step doesn't pull in the required C++ code ,and so zoslib-supp is required.

the celquopt.so provides the necessary 'initialization code' for a C application to work correctly
The example should be changed to include the celquopt.s.o and the zoslib-supp archive if doing a static bind

If that's correct, I can take a crack at fixing the C part of the documentation in the readme.


Gracefully handle error when target server is down

When fake-link is not running, sendmessage will see this:

Could gracefully handle this.

Will need to test this on with the recent updates to staging branch


AttributeError: 'Future' object has no attribute 'history_item_id'

I get error [AttributeError: 'Future' object has no attribute 'history_item_id'] how to debug

Fixed in 0.22.3. But really, you shouldn't be using generate_audio_v2 anymore, it's deprecated.


Handle 413 response status code from Airbrake server.

Fixes #55.

Also check JSON size and don't send it if it exceeds 64kb


No license is declared

Could you please declare a license in your repo? Without a LICENSE file or declaration of the license terms in the README.md, the code is technically "all rights reserved" by the authors and reuse of the code is limited. If you are unopinionated on the matter, I suggest the MIT license as it is highly compatible--particularly with university IP licenses (such as this one).
If an MIT license is acceptable I'd be happy to submit a PR to include it.
Thanks!

We have added MIT License to the repo. Thanks for your feedback.


Fix include errors, header, and unsafe locks in iface.hpp

Fix a few issues with the internal header neighbors/iface/iface.hpp  leading to compile time errors and dangerous runtime behavior:

Add missing includes
Use std::lock_guard to avoid a deadlock on exception
Add NVIDIA header
Avoid an extra stream sync during search.

/merge


Simplify android check

It simplify this version check.
For me graphic memory consumption works on Pixel 4 and click hotspot works for Emulator and Pixel 4
Please @mupm1 give it a try

Now I do stuff with Kotlin extension functions

@hannesa2 please revert to 1.8.0 and just change version getter method then release new version

please download this aar file of panorama and test on your device.
https://ufile.io/irq5ub31

@hannesa2 please download this aar file of panorama and test on your device.
https://ufile.io/irq5ub31

There is no need, I added your repo as remote and build it by my own.
Now I do rebase commit-by-commit

YES !
With this branch, I increased the loop to 400 and observed on step ~150 this

But next 4 tries there were no memory cleanup 🤔
The main problem is a memory crash ? I did a loop over 1200 and I NEVER had any memory problems on my Pixel4
For me it's close to a ghost hunt.

This one doesn't work and I'll close it.
Maybe I improve it later


launching from explorer tries to open project with wrong version

this project https://github.com/Unity-Technologies/FPSSample
opens with unity 5.x, but should be:
m_EditorVersion: 2018.3.0b4

didnt happen again


Fixed sorting of dict_values for Python 3.5

Fixed the dict_values sorting.

5 years and no merge. Closing.


Pretrained checkpoints

Hey guys,
I was able to follow the steps in the readme to setup the docker container and run odtk however, I noticed that the repo doesn't come with pretrained checkpoints for the different experiments that were run. Are those available so that I can check training performance and reproduce-ability with the different checkpoints listed in the repo's readme, using my own nvidia hardware.
Cheers,
Edward

Awesome thanks !


print types in 100 theorems list

This is WIP, but posting to get comments. The doc page now generates a map from declaration name to location including type information. So we can use this map to display more info on the 100 theorems page.
Some of the links in the YAML file are broken already. I've commented these out, didn't investigate where they moved to.
TODO:

It doesn't display when there are multiple declarations right now. This is easy enough, just takes a little restructuring of the data structure.
Plenty of CSS/design work is needed.
YAML entries no longer need the full path. I'm stripping everything before #. We can remove the unneeded info.
Entries that are not in mathlib should have the type written explicitly to match.

If anyone would like to adopt this I'm happy to hand it over.

Also note that the same map can be used for the mathlib overview. Even if you don't want to display types, you can find up-to-date links.

The styling is now slightly better, and it handles entries with multiple declarations.

Note, I didn't touch lean.css by hand, just the .scss file. I guess the large diff is because of a different version of scss or something?

Thanks for doing this. @bryangingechen shall we merge this?

There are a few points that we'll have to address sooner or later. I think at least the last one should be figured out before we merge:

where did the commented-out links go?
what version of SCSS should we be using?
this PR makes 100.html dependent on mathlib_docs. Should we be triggering a website rebuild every time we rebuild the docs?

this PR makes 100.html dependent on mathlib_docs. Should we be triggering a website rebuild every time we rebuild the docs?

No more so than before. The links to source will be stable, since they go to specific versions of Lean/mathlib on GitHub. Links to the docs will be at least as stable as the current setup -- they'll work unless the declarations move to a new file, just like the current ones.
I think rebuilding the website once daily might be good, but triggering it from mathlib_docs seems excessive.

Before merging this, we should remove the redundant paths from the yaml and update the corresponding code.

this PR makes 100.html dependent on mathlib_docs. Should we be triggering a website rebuild every time we rebuild the docs?

No more so than before. The links to source will be stable, since they go to specific versions of Lean/mathlib on GitHub. Links to the docs will be at least as stable as the current setup -- they'll work unless the declarations move to a new file, just like the current ones.
I think rebuilding the website once daily might be good, but triggering it from mathlib_docs seems excessive.

Makes sense. Do you mind adding a daily cron job to the actions workflow?

Also, do we want to switch to force-pushing to master? We can do that in a later PR too.

where did the commented-out links go?

Based on this the Sylow ones were never in mathlib to begin with. Don't ask me why they got added to the list as mathlib links...

@PatrickMassot what do you think about this? If you approve, I'll change the yaml file to get rid of the redundant parts of the URLs. I can also remove my css changes and let someone else regenerate from the scss; does the CI do that when deploying the site?

I changed the error handling to print a warning for broken links. But note that this can be used as CI for the 100 theorems list if it throws an exception. #65 fixes two problems that showed up in the previous commit.

I haven't followed the discussion here since I have very little interest for this list. And I don't know anything about the CI aspects of all this. So I'm not sure why I'm pinged here. I certainly don't mind merging this.

Maybe this is for a separate PR, but it would be good to add CI warnings / errors for overview.yaml as well. (Are there other YAML files that reference mathlib?)
Currently the CI isn't doing anything with SCSS or CSS, but it shouldn't be hard to add a step for that. In that case I guess we'd want to delete the generated CSS from the repo, but that would mean that people would have to run scss to build the site locally.

Yes, overview.yaml should use the same linkification map that I'm adding in this PR.
@PatrickMassot I tagged you because I think of you as "in charge" of the website ;) Thought you might have an opinion about adding the dependency on the mathlib_docs map.
I'll finish cleaning this up and get it ready to merge. It would be great if someone else could run scss so the css diff isn't so unnecessarily large.

I tried regenerating the css on my office computer and it's the same as at home.

I've pushed a commit with the new generated CSS but the diff is still huge. It looks like your lean.css file was generated with Ruby sass with the default "nested" output style: https://sass-lang.com/documentation/cli/ruby-sass#style and in fact looking at the history, it looks like the CSS has been that way since 8fba9640.
Before that commit and in the commit I just pushed, I generated the CSS file with dart sass, which has a different default "expanded" output style: https://sass-lang.com/documentation/cli/dart-sass#style
This doesn't explain the large diff between your CSS and the one from 8fba9640 though, maybe there are differences in the output of Ruby sass?

The only correct solution is to generate CSS from SCSS as part of the site building, and remove the CSS file from the git repository. I put it originally because I feared some people might want to tweak the website without having sass. Now the website is more stable, and it turned out there aren't so many people working on it.

The only correct solution is to generate CSS from SCSS as part of the site building, and remove the CSS file from the git repository.

Sounds good. I'll try to do this in another PR this weekend.
@robertylewis if you're happy with this, you can go ahead and merge.


Don't highlight builtins like type

Our copyeditor pointed out that in Chapter 1 (and by the way same issue in Chapter 9), when we create a socket with socket.socket(type=...), the word type should not be syntax-highlighted because it's not actually a builtin function but just a named parameter. I noticed that the website doesn't have this problem. It turns out that's because we have a very minimal highlighting style on the website: comments, strings, and keywords are the only things with a color. So I made the LaTeX in the book do the same thing.

Yep, it really does look just like the website. I don't know if the colors will be quite right in print but I suppose that'll be handled during typesetting anyway.


Remove cachevec

This feature is no more use today so let remove it

Note that coreneuron's submodule needs to be updated once this is merged.

We should not fix mod2c


Thin bottom line of menu-bar does not  apply new theme (non-client-area ?)

Hello @adzm,
thank you very much for your solution.
It work fine for us (https://github.com/rizonesoft/Notepad3).
While most parts of the menu-bar now are rendered very well for dark-mode,
a thin line at the bottom of the menu-bar is not painted in defined colors:

This line belongs to the menu-bar, cause it disappears on hiding the menu-bar:

Maybe, it belongs to the "non client area" of the menu-bar ?
I found this:
https://stackoverflow.com/questions/57177310/how-to-paint-over-white-line-between-menu-bar-and-client-area-of-window
But I am not sure how to intercept the WM_NCPAINT message for the menu-bar (WM_UAHNCPAINTMENUPOPUP seems not to be called from the window proc 🤔).
Maybe, you have another solution for us?

Hello! Yes if you look at notepad plus plus we have a solution there that
simply overwrites the line.
On Sun, Sep 26, 2021, 7:54 AM Rainer Kottenhoff @.***>
wrote:

Hello @adzm https://github.com/adzm,
thank you very much for your solution.
It work fine for us (https://github.com/rizonesoft/Notepad3).
While most parts of the menu-bar now are rendered very well for dark-mode,
a thin line at the bottom of the menu-bar is not painted in defined colors:
[image: image]
https://user-images.githubusercontent.com/8806350/134806200-0701a17c-21ab-4f43-94ae-f24838ea7388.png
This line belongs to the menu-bar, cause it disappears on hiding the
menu-bar:
[image: image]
https://user-images.githubusercontent.com/8806350/134806257-6005ad0a-a3b7-4de5-8e11-02f79f2bf98e.png
Maybe, it belongs to the "non client area" of the menu-bar ?
I found this:
https://stackoverflow.com/questions/57177310/how-to-paint-over-white-line-between-menu-bar-and-client-area-of-window
But I am not sure how to intercept the WM_NCPAINT message for the menu-bar
(WM_UAHNCPAINTMENUPOPUP seems not to be called from the window proc 🤔).
Maybe, you have another solution for us?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/adzm/win32-custom-menubar-aero-theme/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZYAF4OPTQQIUGJPPDYUOTUD4CY7ANCNFSM5EYWXWJA
.
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.

https://github.com/notepad-plus-plus/notepad-plus-plus/pull/9985 this is
how we implemented overwriting the white line in npp which should work fine
for you too!
Very happy to see this little thing I figured out getting used for dark
mode in apps!
On Sun, Sep 26, 2021, 7:54 AM Rainer Kottenhoff @.***>
wrote:

Hello @adzm https://github.com/adzm,
thank you very much for your solution.
It work fine for us (https://github.com/rizonesoft/Notepad3).
While most parts of the menu-bar now are rendered very well for dark-mode,
a thin line at the bottom of the menu-bar is not painted in defined colors:
[image: image]
https://user-images.githubusercontent.com/8806350/134806200-0701a17c-21ab-4f43-94ae-f24838ea7388.png
This line belongs to the menu-bar, cause it disappears on hiding the
menu-bar:
[image: image]
https://user-images.githubusercontent.com/8806350/134806257-6005ad0a-a3b7-4de5-8e11-02f79f2bf98e.png
Maybe, it belongs to the "non client area" of the menu-bar ?
I found this:
https://stackoverflow.com/questions/57177310/how-to-paint-over-white-line-between-menu-bar-and-client-area-of-window
But I am not sure how to intercept the WM_NCPAINT message for the menu-bar
(WM_UAHNCPAINTMENUPOPUP seems not to be called from the window proc 🤔).
Maybe, you have another solution for us?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/adzm/win32-custom-menubar-aero-theme/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZYAF4OPTQQIUGJPPDYUOTUD4CY7ANCNFSM5EYWXWJA
.
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.

@adzm : Thank you very much for your hint - this works like charm.

Committed the solution to this repo as well


Added Luma AI API #81

kindly, review changes and merge this PR into main.
Closes #81

The company provides no API.


fix(solid-query): Don't return promise when data is available synchronously

In our application, we have placeholderData: keepPreviousData set globally, and try to take full advantage of Suspense and transitions.
We have refetch on window focus enabled, and every time we refocused a suspense boundary was triggering for a tiny amount of time - small enough that the fallback wasn't actually visible, but long enough that solid was modifying DOM elements, causing a CSS fade in animation to constantly retrigger.
With this change, the query resource effectively short circuits if a result is synchronously available (as is the case with keepPreviousData after first load), so even if a query is refetching, it won't suspend after first load.

Hello! Hope you're having a great week. Thanks for fixing this! Some of the tests seem to break. Is it possible you could create a reproduction of this issue? So that I can better understand if there are some edge cases we're not handling

Made a repro: https://github.com/Brendonovich/solid-query-suspense-repro
Run it with pnpm dev, open the first route, then switch to another tab and back a few times, you'll notice that the CSS transition replays as DOM elements are being modified, also removing the root Suspense fixes the issue too.
Not sure why that test isn't passing, I'll keep looking into it.

Ah thank you so much for creating the reproduction! I think I have identified the issue. The issue seems to be in the implementation of the query persistent layer. I'll report back when I have figured out the solution

Thanks for the help on this! @Brendonovich I will be closing this in favor of #6993 and I will give you Co-Author credits there!


Patch for Require cycle: node_modules/semver/classes/comparator.js -> node_modules/semver/classes/range.js -> node_modules/semver/classes/comparator.js

Hi! 👋
Firstly, thanks for your work on this project! 🙂
Today I used patch-package to patch<EMAIL_ADDRESS>for the project I'm working on.

Here is the diff that solved my problem:
diff --git a/node_modules/react-native-check-version/src/versions.js b/node_modules/react-native-check-version/src/versions.js
index e69c00f..fc83676 100644
--- a/node_modules/react-native-check-version/src/versions.js
+++ b/node_modules/react-native-check-version/src/versions.js
@@ -1,7 +1,10 @@
-import semver from "semver";
+const semverParse = require('semver/functions/parse');
+const semverCoerse = require('semver/functions/coerce');
+const semverEq = require('semver/functions/eq');
+const semverLt = require('semver/functions/lt');

 export const parseVersion = (version) => {
-  return semver.parse(semver.coerce(version), true);
+  return semverParse(semverCoerse(version), true);
 };

 export const diffLoose = (version1, version2) => {
@@ -11,7 +14,7 @@ export const diffLoose = (version1, version2) => {

   const v1 = parseVersion(version1);
   const v2 = parseVersion(version2);
-  if (semver.lt(v2, v1) || semver.eq(v1, v2, true)) {
+  if (semverLt(v2, v1) || semverEq(v1, v2, true)) {
     return null;
   }

This issue body was partially generated by patch-package.

Closing this for as it's not a critical issue. Still happy to accept a PR to fix this though.


exit code of 0 when invalid flag is used

currently if an invalid command is given the exit code will be 3
when an invalid flag is given the exit code is 0?
is there a reason for this and how do I change the exit code when an invalid flag is given?

This does feel inconsistent. Thanks for the report @nyang5 !

An invalid flag will bubble an error up to App.Run() so you can check and exit at that level with a non-zero code.

An invalid flag will bubble an error up to App.Run() so you can check and exit at that level with a non-zero code.

@jszwedko can you explain a bit more how that might look? I've tried replicating the app.OnUsageError function like in https://github.com/vektorlab/slackcat/commit/5add3e434b990f33931ecc5bfccc38ef0ace08a7, but we still see a silent app exit when a BoolFlag has a value like test.

Some more details on the above, the latest master of urfave/cli seems to handle parameters with non-parseable values:
go run *.go bootstrap --clean-checkout=llamas
Incorrect Usage: invalid boolean value "llamas" for -clean-checkout: strconv.ParseBool: parsing "llamas": invalid syntax

However, it silently fails with environment variables:
BUILDKITE_CLEAN_CHECKOUT=llamas go run *.go bootstrap
exit 0

Hi @lox,
Can you try that with the latest cli? Or provide the commit you are using? I wasn't able to replicate with:
package main

import (
	"log"
	"os"

	"github.com/urfave/cli"
)

func main() {
	app := cli.NewApp()

	app.Flags = []cli.Flag{
		cli.BoolFlag{
			Name:   "clean-checkout",
			EnvVar: "BUILDKITE_CLEAN_CHECKOUT",
			Usage:  "language for the greeting",
		},
	}

	app.Action = func(c *cli.Context) error {
		return nil
	}

	err := app.Run(os.Args)
	if err != nil {
		log.Fatal(err)
	}
}

$ BUILDKITE_CLEAN_CHECKOUT=llamas go run /tmp/tmp.go
2017/11/11 16:09:34 could not parse llamas as bool value for flag clean-checkout: strconv.ParseBool: parsing "llamas": invalid syntax
exit status 1

Ah-hah, I wasn't catching the error from app.Run. Works with master now. Thanks!

No problem! I'll leave this open to make sure the issue with exit codes is addressed.

Should HandleExitCoder call OsExiter(1) when passed a "normal" error?
For example:
err := errors.New("neither an ExitCoder nor a MultiError")
cli.HandleExitCoder(err) // should this os.Exit(1) ?

Given that this is from last year, I think I'm comfortable closing it 🙂 feel free to re-open / open a new issue / comment in support if there's still interest here!


[suggestion] network idea (not concerned but maybe have it when everything rn is done. it's whatever)

What is wrong?
nothing
Where does it happen?
everywhere
How do we replicate the issue?
doing anything
How important is this (1-5)?
1 (i wouldn't mind if it came in v3 even)
Expected behavior (i.e. solution)
we need convolutional networks or even layers
Other Comments
im really loving this library, absolutely stellar work

Convolution layers are being added in v2, they are mostly tested, and will be completed tested soon.  This sounds like a hint for the perfect plug for the roadmap, currently focused on the solidification of v2: https://github.com/BrainJS/brain.js/wiki/Roadmap


Add support for Riot IDs APIs

RIOT ID Support

Summoner names were removed on November 20th 2023. League of Legends will now use Riot IDs in their place.
Summoner names have been transitioned out of the API responses starting April 8th 2024.
Use Account-V1 by gameName/tagLine as a replacement for Summoner-V4 by-name endpoint. https://developer.riotgames.com/apis#account-v1/GET_getByRiotId
You can use the PUUID from that endpoint with Summoner-V4 by-puuid to get the same summoner information as you were getting before https://developer.riotgames.com/apis#summoner-v4/GET_getByPUUID

You can read more about the transition here: https://www.riotgames.com/en/DevRel/summoner-names-to-riot-id

The library appears to support 2024 RIOT API Accounts, but it lacks examples for accessing them. Additionally, it seems we need to integrate support for match history, as the library currently uses deprecated v4 endpoints, which are no longer supported.


Every entry of R2 class has ID 0x0 with Android Plugin 3.6.0-alpha10 and Butterknife library plugin

Using
classpath 'com.android.tools.build:gradle:3.6.0-alpha10'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'

and
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'

Here is an extrac of the R2 class :
public final class R2 {
  public static final class anim {
    @AnimRes
    public static final int abc_fade_in = 0x0;

    @AnimRes
    public static final int abc_fade_out = 0x0;

    @AnimRes
    public static final int abc_grow_fade_in_from_bottom = 0x0;

    @AnimRes
    public static final int abc_popup_enter = 0x0;

    @AnimRes
    public static final int abc_popup_exit = 0x0;

    @AnimRes
    public static final int abc_shrink_fade_out_from_bottom = 0x0;

    @AnimRes
    public static final int abc_slide_in_bottom = 0x0;

    @AnimRes
    public static final int abc_slide_in_top = 0x0;

    @AnimRes
    public static final int abc_slide_out_bottom = 0x0;

    @AnimRes
    public static final int abc_slide_out_top = 0x0;

    @AnimRes
    public static final int abc_tooltip_enter = 0x0;

    @AnimRes
    public static final int abc_tooltip_exit = 0x0;

    @AnimRes
    public static final int btn_checkbox_to_checked_box_inner_merged_animation = 0x0;

    @AnimRes
    public static final int btn_checkbox_to_checked_box_outer_merged_animation = 0x0;

    @AnimRes
    public static final int btn_checkbox_to_checked_icon_null_animation = 0x0;

Reproducible sample : https://github.com/NitroG42/Epoxy6Canary10Issue
If needed I can make an issue on Android Bug Tracker, I'm just not sure if it's a bug or a new behavior that requires some dev in the butterknife plugin.

This is working as indented on the AGP side - does this break anything, Jake?

With 3.6 now in RC a fix for this is pretty important.

@athornz does this break anything? Does butterknife require the IDs to be unique? It is the expected behaviour in AGP.

@imorlowska yes it's breaking any usages of the butterknife plugin since ids generated in the R2 class are all 0x0.

You can temporarily go back to the previous behaviour by using android.useCompileClasspathLibraryRClasses=false (this will however get rid of the speed improvements that came with the compile classpath library r classes).

ah, I didn't know about that one!
Would still be great to see a butterknife fix - is it still possible for butterknife to generate the R2 class as before?

We'll see what we can do. :)

You can temporarily go back to the previous behaviour by using android.useCompileClasspathLibraryRClasses=false (this will however get rid of the speed improvements that came with the compile classpath library r classes).

@imorlowska It helps~ I didn't know this option, either. Thank you~

You can temporarily go back to the previous behaviour by using android.useCompileClasspathLibraryRClasses=false (this will however get rid of the speed improvements that came with the compile classpath library r classes).
How to set android.useCompileClasspathLibraryRClasses=false ?

You can temporarily go back to the previous behaviour by using android.useCompileClasspathLibraryRClasses=false (this will however get rid of the speed improvements that came with the compile classpath library r classes).

ButterKnife 10.2.1 need AndroidX support. But my system cannot been updated to AndroidX now to avoid possible conflict. So try to
set android.useCompileClasspathLibraryRClasses=false in gradle-wrapper.properties. But the problem still exits.
Which configuration file should been put to  android.useCompileClasspathLibraryRClasses=false
@imorlowska


[SPARK-39447][SQL][3.2] Avoid AssertionError in AdaptiveSparkPlanExec.doExecuteBroadcast

This is a backport of https://github.com/apache/spark/pull/36974 for branch-3.2

What changes were proposed in this pull request?

Change currentPhysicalPlan to inputPlan  when we restore the broadcast exchange for DPP.
Why are the changes needed?

The currentPhysicalPlan can be wrapped with broadcast query stage so it is not safe to match it. For example:
The broadcast exchange which is added by DPP is running before than the normal broadcast exchange(e.g. introduced by join).
Does this PR introduce any user-facing change?

yes bug fix
How was this patch tested?

add test

@cloud-fan  oh, this patch is based on #36953 but it does not backport into branch-3.2. Shall we also backport #36953 into branch-3.2 ?

Yep, +1 for backporting that PR first and revisit this PR after merging it.

Since @ulysses-you seems to be busy, I made a backporting PR of https://github.com/apache/spark/pull/36953 , @cloud-fan , for Apache Spark 3.2.2 preparation.

https://github.com/apache/spark/pull/37108

Thank you for rebasing, @ulysses-you .

all test passed, the report seems broken

thanks, merging to 3.2!


bug(Dropdown): Arrow keys are not working after No results found.

Steps

Go to search-selection dropdown
Type something (e.g. af)
If you will use arrow up and down keys, everything is working as expected
Add one letter to search field, so there will be no results (afs)
Remove this letter (af)
Arrow keys are not working anymore (Uncaught TypeError: Cannot read property 'disabled' of undefined)

Thanks much!  PRs welcome, otherwise, I'll get this fixed soon as I can.

See #1279


Ignore inadvertent joystick twists 2

Redo of #34

Current coverage is 0.00% (diff: 0.00%)

Merging #35 into develop will not change coverage

@@           develop   #35   diff @@
====================================
  Files            2     2
  Lines           80    84     +4
  Methods          0     0
  Messages         0     0
  Branches         5     7     +2
====================================
  Hits             0     0
- Misses          80    84     +4
  Partials         0     0

Powered by Codecov. Last update 370e087...4afa283

Use #36 instead, this PR has unrelated commits in it.


Extending of mdIcon source definition (for strings)

Bug, feature request, or proposal:
Extending of mdIcon source definition (for inlined svg strings)
What is the expected behavior?
const iconAsSvg: string = '<svg>...</svg>'
mdIconRegistry.addSvgIcon('myicon', iconAsSvg);

or reference the svg string directly in md-icon:
<md-icon  [svgIconSrc]="iconAsSvg"></md-icon>

What is the current behavior?
Registering for svg's works only with an url:
mdIconRegistry.addSvgIcon(iconName: string, url: SafeResourceUrl): this

So you would be more flexible to provide svg resources (e.g. for libs etc.)

As a data point, I also found a need to provide the svg source directly to mdIconRegistry so as to hackily inline the svgs into the final app bundle.
Having something like mdIconRegistry.addSvgIconSource('myicon', iconAsSvg); would've saved much hassle. Even better would be if this bundling (via angular-cli) was built-in.
The lack of this capability can be worked around in one of a few unpleasant ways. The first is to provide a custom Http instance to the MdIconRegistry constructor (via injection). This custom Http instance will serve up fake content when requested. This seems nasty. Another approach is to extend the MdIconRegistry class, adding on the new methods and overriding the existing ones (if one didn't care about the existing behaviour of MdIconRegistry, one could not bother extending it and just throw exceptions on all unneeded methods). To illustrate this hack and to help out anyone wanting to do something similar:
inline-icon-registry.ts
import {Injectable} from "@angular/core";
import {Http} from "@angular/http";
import {MdIconRegistry} from "@angular/material";
import {DomSanitizer} from "@angular/platform-browser";
import {Observable} from "rxjs/Observable";

@Injectable()
export class InlineIconRegistry extends MdIconRegistry {

    private _mbIconIdToSource: Map<string, SVGElement> = new Map();

    constructor(http: Http, sanitizer: DomSanitizer) {
        super(http, sanitizer);
    }

    mbAddSvgIconSource(iconName: string, source: string): this {
        const svgElement = this._mbCreateSvgElementForSingleIcon(source);
        this._mbIconIdToSource.set(`:${iconName}`, svgElement);
        return this;
    }

    mbAddSvgIconSourceInNamespace(namespace: string, iconName: string, source: string): this {
        const svgElement = this._mbCreateSvgElementForSingleIcon(source);
        this._mbIconIdToSource.set(`${namespace}:${iconName}`, svgElement);
        return this;
    }

    getNamedSvgIcon(name: string, namespace?: string): Observable<SVGElement> {
        const iconId = `${typeof namespace === "string" ? namespace : ""}:${name}`;
        if (this._mbIconIdToSource.has(iconId)) {
            return Observable.of(this._mbIconIdToSource.get(iconId)!.cloneNode(true));
        }
        return super.getNamedSvgIcon(name, namespace);
    }

    /**
     * Duplicated from MdIconRegistry to avoid hackily invoking a private method.
     */
    private _mbCreateSvgElementForSingleIcon(responseText: string): SVGElement {
        const svg = this._mbSvgElementFromString(responseText);
        this._mbSetSvgAttributes(svg);
        return svg;
    }

    /**
     * Duplicated from MdIconRegistry to avoid hackily invoking a private method.
     */
    private _mbSvgElementFromString(str: string): SVGElement {
        const div = document.createElement("DIV");
        div.innerHTML = str;
        const svg = div.querySelector("svg") as SVGElement;
        if (!svg) {
            throw new Error(`cannot create`);
        }
        return svg;
    }

    /**
     * Duplicated from MdIconRegistry to avoid hackily invoking a private method.
     */
    private _mbSetSvgAttributes(svg: SVGElement): SVGElement {
        if (!svg.getAttribute("xmlns")) {
            svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
        }
        svg.setAttribute("fit", "");
        svg.setAttribute("height", "100%");
        svg.setAttribute("width", "100%");
        svg.setAttribute("preserveAspectRatio", "xMidYMid meet");
        svg.setAttribute("focusable", "false");
        return svg;
    }
}

app.module.ts
import "hammerjs";

import {NgModule} from "@angular/core";
import {FormsModule} from "@angular/forms";
import {HttpModule} from "@angular/http";
import {MaterialModule, MdIconRegistry} from "@angular/material";
import {BrowserModule} from "@angular/platform-browser";

import {AppRoutingModule} from "./app-routing.module";
import {AppComponent} from "./app.component";
import {InlineIconRegistry} from "./inline-icon-registry";

@NgModule({
    declarations: [
        AppComponent,
        // etc
    ],
    imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        AppRoutingModule,
        MaterialModule,
    ],
    providers: [
        // Use our inline registry instead of the default
        {provide: MdIconRegistry, useClass: InlineIconRegistry},
    ],
    bootstrap: [AppComponent],
})
export class AppModule {
}

some-random.component.ts
import {Component} from "@angular/core";
import {MdIconRegistry} from "@angular/material";

import {InlineIconRegistry} from "../inline-icon-registry";

declare function require(s: string): string;

@Component({
    selector: "mb-some-random",
    providers: [],
    templateUrl: "./some-random.component.html",
    styleUrls: ["./some-random.component.css"],
})
export class SomeRandomComponent {

    constructor(iconRegistry: MdIconRegistry) {
        if (iconRegistry instanceof InlineIconRegistry) {
            const namespace = "some-random";
            iconRegistry.mbAddSvgIconSourceInNamespace(namespace, "play", require("!!raw-loader!./play.icon.svg"));
            iconRegistry.mbAddSvgIconSourceInNamespace(namespace, "pause", require("!!raw-loader!./pause.icon.svg"));
        }
    }
}

This seems to work well enough, but it does feel a bit fragile.

Can't you use a data url? Works for me.
const svg = "<svg>...</svg>";
const url = this.sanitizer.bypassSecurityTrustResourceUrl(encodeURI("data:image/svg+xml," + svg));
this.matIconRegistry.addSvgIcon("foo", url);

@kuhnroyal Nice idea! Far less of a hack than the approach I posted.
Downsides of the dataurl approach are that MatIconRegistry caches the SVG content by URL, and the unnecessary async XHR to "fetch" the data URI. Neither issue seem serious if you've only got a small number of smallish icons.
More seriously, it might be an issue on older Safaris (older mobile devices would be of particular concern)?
If anyone wants to use this approach I'd suggest they test it against their minimum supported target devices to ensure it works as expected.
I'd still like to see a method of adding the content of an icon directly to the registry.


Can't register - Create account - Uh-oh! - Please try again

Summary
Click on Register, type username & password :

Impacted services

[x] The frontend app
[ ] The game servers
[ ] Game builds or automation scripts
[ ] Tests or Github Actions
[ ] Infrastructure (Terraform)

Steps to reproduce

Open App
Click Register
Try to register

Environment information

Operating system:  Linux
Browser: n/a
Browser version: ?

Same error on windows 10

Which server are you trying to connect to? Did you follow the setup instructions?

I was hoping that the game release would be shipped with a public server included,
but as you state we need to setup our server locally first.


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 457

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.0%

Totals

Change from base Build 456:
0.0%

Covered Lines:
14

Relevant Lines:
20

💛  - Coveralls

:tada: This PR is included in version 1.0.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ES6-ify the code in web/chromecom.js

These changes consists mainly of replacing var with let.
Edit: Considerably smaller diff with https://github.com/mozilla/pdf.js/pull/9104/files?w=1.

/botio-linux preview

Looks good; thank you!


Not starting on Centos 7

hi there,
Great resource, thanks very much for putting it together. I've installed the role in Centos 7 however Jenkins won't start and even fails to start silently.
I put some echo statements the /etc/rc.d/init.d/jenkins script and it appears to fail or at least fall silent after executing the
/etc/init.d/functions
script.
It appears to be using the daemon function but that's not till further down the script. Does the /etc/init.d/functions script redirect all the subsequent process output regardless? If so any ideas where I could find it to see what's happening?
Also I had to update a number of the task steps to run as root? Is this because the role doesn't necessarily support Centos or would it be because I need to use the root user in ansible hosts to execute the role?
Thanks,
Mark.

Just in case, I'm on a Windows host in work and a Mac host at home and encountered the same issue.

Hi there, it turned out to be a disparity between the latest version of Jenkins requiring Java 8 and the default install being 1.7
I see that it's almost the first thing you mention in the requirements section so it shouldn't have taken me quite so long to twigg it. Would it be worth considering updating the default out of the box installation so that it uses java 8? Or perhaps some warning if the version of jenkins is greater than 2.54 and the jdk being installed is less than 8?
Thanks,
Mark.

Would it be worth considering updating the default out of the box installation so that it uses java 8?

I don't want to have the responsibility of managing Java installations in this role—I already have the geerlingguy.java role for that, and it has documentation for how to switch between versions in most cases.

Or perhaps some warning if the version of jenkins is greater than 2.54 and the jdk being installed is less than 8?

This might be doable... but it's a situation where I could hardcode something about requiring Java 8... then a year from now Java 9 comes out and we run into the same issue, and then I have a bunch of conditionals that make this role harder to maintain (since I usually support my roles on 3-5 OS distros, and all of them at least on the latest OS and usually n-1 too).
I think the warning in the README, and the errors that are apparent once you glance in the logs, should hopefully be adequate for now. Also, people will google the error and get to this issue, so thank you for documenting it :)


Better document laying out transactions and messages

Problem
The "Laying out Transactions and Messages" section of the specs is currently empty.
Document https://github.com/celestiaorg/celestia-app/pull/835 in the specs.
Proposal
Fill it out

I think Callum completed this a while back because https://celestiaorg.github.io/celestia-app/specs/data_square_layout.html contains info on how blobs and txs are laid out.


why is the node distribution minified?

It's extremely hard to debug production problems in the node lightstep distribution, because the distributed code is minified. This seems highly unusual -- I don't think I've ever seen people minify their nodejs code for distribution. Is there some reasoning behind it?

This is legitimate defect stemming from a bit of misunderstanding of the right build tools to use in the original implementation. It should not be minified.

Is there anything we can do to get this fixed? Would a PR help?

@nicks , I agree - I'd like to see this one fixed too.
I'll be honest that I'm not sure exactly how much work it is. The code currently uses webpack to do some conditional compilation on the Node side: https://github.com/lightstep/lightstep-tracer-javascript/blob/master/webpack.config.js#L51. I'm not sure if this is something that can be worked around easily in a Babel based compilation or not. I assume there'll be a bit of untangling necessary to get away from relying on webpack for the non-browser code, so have not had time to "just fix this."

ok, i'm pretty sure it's not that hard, you only need to a copy of the necronomicon and some babel experience, will try to put together a pr


Game consumes 100% CPU if the window is covered by another OS window (macOS)

Godot version
v3.5.stable.official [991bb6ac7]
System information
macOS 12.5.1 (21G83), Apple M1 Max MacBook Pro
Issue description
Simply covering up the game's window with another OS window causes CPU usage to spike to 100%. You can see this in action in the video:
https://user-images.githubusercontent.com/453721/185812416-203ed323-0884-4a5b-950d-c93d099716c9.mov
Steps to reproduce
Run the attached project (or any project, really - the attached one is essentially empty and has no scripts) on macOS. Drag a window over top of the game's window (it needs to cover it completely). Watch as CPU usage skyrockets.
My uninformed suspicion is that macOS detects when the window is covered and stops sending rendering/v-sync events to the app in an effort to save power. Godot may be waiting for those events in an inefficient polling loop and when they stop coming that loop starts burning up cycles.
Godot now has the distinction of being the first app on my M1 Max that's actually managed to get the fan to run because of this. I noticed it because I have a habit of leaving the game open behind other windows when I switch back to the editor to keep working on it. I don't think this is an uncommon habit, tbh, and this behavior would have caused Godot to very rapidly deplete my laptop's battery if I hadn't happened to be running while plugged in.
Minimal reproduction project
Godot 100% CPU Bug.zip

Related to https://github.com/godotengine/godot/issues/26605.
cc @lawnjelly

Related to #26605. Enabling Update Vital Only in the Editor Settings may reduce CPU usage (as well as increasing Low Processor Mode Sleep Usec to something like 33000).
Does minimizing the window instead of alt-tabbing avoid this?
cc @lawnjelly @bruvzg

(Accidentally closed this instead of commenting... SIGH. Hopefully that didn't mess something up.)
Behaviors I'm seeing:

Minimizing the game window causes the same problem. As far as I can tell, it makes no difference.

Switching away with CMD-Tab causes it, too, as long as the game window ends up hidden (so if I CMD-Tab back to the editor window and it's fully overlapping the game window).

Low processor mode mitigates it but it still clearly goes up when the game window is behind. (This sample goes from about 10% cpu when active to about 20-25% when the window is hidden and low processor mode is enabled.)

Related to https://github.com/godotengine/godot/issues/26605. Enabling Update Vital Only in the Editor Settings may reduce CPU usage (as well as increasing Low Processor Mode Sleep Usec to something like 33000).

This will affect only the editor, if you want the same behavior from the game, you should process focus-in focus out notifications to set/unset low CPU mode, like:
func _notification(what):
	if what == NOTIFICATION_APPLICATION_FOCUS_IN:
		OS.set_low_processor_usage_mode(false)
	elif what == NOTIFICATION_APPLICATION_FOCUS_OUT:
		OS.set_low_processor_usage_mode_sleep_usec(33000)
		OS.set_low_processor_usage_mode(true)

Yes as @bruvzg says, vital updates is only for editor, not for running game.
100% CPU usage is expected when vsync is not working, and I've occasionally seen this happen on linux (when in a game menu I think) when vsync was set to on, and the frame rate jumped from 60 to 1000 or so. No idea what was causing this or been able to produce an MRP - this was in a menu mode of the game where only 2d and no 3d was rendered. (Maybe it was wrongly being caused by a lose focus message or something?)

100% CPU usage is expected when vsync is not working

I don't see how this should be expected or acceptable behavior. When vsync is enabled the expectation is that the app will wait until the notification to draw and therefore if that notification never comes, then it should never draw and continue waiting. Falling back to a 100% CPU-eating state just because the vsync signal doesn't come when the app wanted it to isn't right at all and circumvents the whole reason macOS is likely stopping sending vsync signals in this case which is to save power.
Luckily this is very trivial to replicate on macOS, so if the same problem is somehow occurring on other operating systems perhaps the cause is similar in that Godot is perhaps expecting vsync signals at some rate and when it doesn't get them at that rate it becomes upset and starts acting as if vsync is disabled rather than waiting patiently for the vsync signal to arrive.

Now that Godot can get the screen refresh rate, I wonder if we should enforce a FPS limit slightly higher than the monitor refresh rate when V-Sync is enabled.

I added this script (slightly modified from @bruvzg's suggestion because the notification names didn't exist):
func _notification(what):
	if what == NOTIFICATION_WM_FOCUS_IN:
		print("focus in")
		OS.set_low_processor_usage_mode(false)
	elif what == NOTIFICATION_WM_FOCUS_OUT:
		print("focus out")
		OS.set_low_processor_usage_mode_sleep_usec(33000)
		OS.set_low_processor_usage_mode(true)

And it does help - the CPU usage of the empty project sits around 9-10% when it's in the foreground but the moment I click over to Activity Monitor with this script active in the scene, it drops to around 3% or so so. Covering the game window or hiding it, etc. doesn't change anything - it still stays around 3%.
If something like this was the default behavior I think it'd made a lot of sense.
Curiously, though, the editor itself was only consuming something like 1-2% CPU while it was backgrounded in this situation, so clearly Godot somehow knows how to do the right thing already but it's not carrying that behavior over to the game window for whatever reason.

Curiously, though, the editor itself was only consuming something like 1-2% CPU while it was backgrounded in this situation, so clearly Godot somehow knows how to do the right thing already but it's not carrying that behavior over to the game window for whatever reason.

The editor has low processor mode enabled by default, and is limited to 10 FPS when unfocused (sleep duration of 100000). This is not done in projects by default, but it's technically feasible as I said above.

Just wanted to add that I also have seen this behaviour in previous 3.x versions on Mac OS and would love to see this added for projects.

While I'm not getting 100% CPU or GPU on Godot 4.0.beta9 mobile renderer (macOS 13.0.1), I'm seeing the same weird issue that the CPU and GPU load goes up instead of down when the game window is completely obscured.
If it's any help NSWindow (the macOS window class) has a property occlusionState that could be used to determine if any part of the window is visible on screen to check if it should draw. Perhaps for example in connection to
https://github.com/godotengine/godot/blob/56b828eb82861747b687433c41a8215cfdf8831f/platform/macos/display_server_macos.mm#L2955-L2957
Currently just seems to check for the window being minimized, and when minimizing the window the CPU and GPU goes down to almost 0, so that works. Maybe it should also check for the window being hidden, as in visible=false

cc @bruvzg

Automatically enabling low processor mode on focus loss is something I hadn't thought of before. I think this should be done by default (perhaps disableable with a project setting if needed).

I'm having the same problem with unfocused windows raising the CPU to ~50% on my Mac and we were discussing on Twitter about adding a toggle on the Project Settings to enable/disable low_processor_usage_mode to false/true when the windows if focused/unfocused.
I don't know if it should be enabled by default, but a toggle would be definately the way to go.
Should be open a new proposal for that?
For now I'm using this (Godot 3.x):
func _notification(what: int) -> void:
	if what == MainLoop.NOTIFICATION_WM_FOCUS_OUT:
		OS.low_processor_usage_mode = true

	if what == MainLoop.NOTIFICATION_WM_FOCUS_IN:
		OS.low_processor_usage_mode = false

I don't know if it should be enabled by default, but a toggle would be definately the way to go.
Should be open a new proposal for that?

This is already being tracked in https://github.com/godotengine/godot-proposals/issues/2001

Could you test #83096 and see if it fixes the issue? You can download build artifacts from the CI there: https://github.com/godotengine/godot/pull/83096/checks
("Artifacts" drop down list in the top right area.)

Could you test #83096 and see if it fixes the issue? You can download build artifacts from the CI there: https://github.com/godotengine/godot/pull/83096/checks ("Artifacts" drop down list in the top right area.)

A quick test seems to suggest this appears to work for me. When I run the sample project that was attached to the original bug report in this new version of Godot (after letting Godot upgrade it of course), it runs with around 10-12% CPU while visible (which seems right), but then when I cover the app's window up entirely with another window, CPU usage drops to around 3% (sometimes less) and sits at the same level the editor's own process seems to sit at. The same happens when I minimize the window.
For a point of comparison, I ran this same project using v4.2.dev6.official [57a6813bb] and there's no CPU usage change at all when I cover the game window - it remains using ~10-12% CPU. So the bug where it exploded to 100% CPU must have been fixed elsewhere since this was first reported, but it seems that this new change improves the situation even more.

For reference, using c9aa78a8099a5bc6b5cf8364178569d30380439b, CPU is about 12% when the window is not occluded. When fully occluded, the CPU usage drops to 2% for both Vulkan and Metal renderers


Running Bidirectional RNN cells on parallel

is there any method to run Bidirectional RNNs on parallel as they should (they have no dependency on each other)
I noticed that stacking 2 LSTM layer has the exact same performance as bidirection LSTM (BLSTM)
even 4 stacked LSTM has same performance as 2 parallel BLSTMs (which simply means  that TF runtime doesn't parallelize BLSTMs at all, I also notice the same behavior on both the CPU and the GPU)
Note: I am using small cells that are trivial to fit simultaneously
Thanks,

Could you provide your reproducible code snippet?

This is somewhat lengthy, as I take the chance to also demonstrate a speed problem with dynamic_rnn when specifying sequence_length
import tensorflow as tf
from tensorflow.python.ops  import rnn, rnn_cell,array_ops
import numpy as np
import time

batch_size = 128
n_input = 20
n_steps = 50
n_hidden = 40

np.random.seed(1234)
tf.set_random_seed(1234)

data = tf.constant(np.random.uniform(-1.0, 1.0, [batch_size,n_steps,n_input]), dtype=tf.float32)
sql  = tf.constant([n_steps] * batch_size, tf.int64)
lstm_cell = rnn_cell.LSTMCell(num_units=n_hidden, state_is_tuple=True)

def stacked_lstm():
    mlstm_cell = rnn_cell.MultiRNNCell([lstm_cell] * 2, state_is_tuple=True)
    return rnn.dynamic_rnn(mlstm_cell, data, dtype=tf.float32,sequence_length=sql)[0]

def stacked_lstm_no_sql():
    mlstm_cell = rnn_cell.MultiRNNCell([lstm_cell] * 2, state_is_tuple=True)
    return rnn.dynamic_rnn(mlstm_cell, data, dtype=tf.float32)[0]

def bi_lstm():
    return rnn.bidirectional_dynamic_rnn(lstm_cell, lstm_cell, data, sequence_length=sql, dtype=tf.float32)[0]

def bi_lstm_no_sql():
    y1 = rnn.dynamic_rnn(lstm_cell, data,  dtype=tf.float32,scope='r1')[0]
    rdata = array_ops.reverse_sequence(input=data, seq_lengths=sql, seq_dim=1, batch_dim=0)
    y2 = rnn.dynamic_rnn(lstm_cell, rdata, dtype=tf.float32,scope='r2')[0]
    y2 = array_ops.reverse_sequence(input=y2, seq_lengths=sql, seq_dim=1, batch_dim=0)
    return [y1,y2]

y = stacked_lstm()
#y=stacked_lstm_no_sql()
#y = bi_lstm()
#y = bi_lstm_no_sql()

init = tf.initialize_all_variables()

config = tf.ConfigProto(
    #device_count={'GPU': 0}, #turn GPU on and off
)

with tf.Session(config=config) as sess:
    sess.run(init)
    start = time.time()
    for i in range(1000):
        sess.run(y)
        if(i%100 == 0): print "Iter : ",i*batch_size
    end = time.time()
    print "Finished!  ", (end - start)

when running on GTX 960, you get (i record Utilization from nvidia-setting)
stacked_lstm              : 14.11s     GPU Util:69%
stacked_lstm_no_sql : 10.49s     GPU Util:79%
bi_lstm              : 16.15s     GPU Util:65%
bi_lstm_no_sql  : 11.54s     GPU Util:75%
we note:

stacked_lstm is generally faster than bi_lstm (though, bi_lstm is trivial to parallelize and should be generally up to 2X faster)
removing sequence_length has huge impact on speed. However, I noted that the two methods (with and without sequence_length) return different results, and in my practical use cases removing sequence_length generally returns slightly worse results

what is really needed is method to allow parallel execution of independent parts of the graph like BLSTMs

@ebrevdo: can you take a look?
@ASDen: a more accurate way to measure the running time is to wrap the results in tf.group(), so that the device-to-host transfer of final results is not included.

@ebrevdo any thoughts here...

When using a dynamic_rnn, there is an "execution barrier" between calls to dynamic_rnn; because of the way that data is processed at input & output to the RNN while_loop.  The bidirectional_dynamic_rnn just calls dynamic_rnn twice, much the way you do in bi_lstm_no_sql.  In fact, it also uses reverse_sequence, which also forms a barrier between any two RNN calls.  There's no way around reverse_sequence: all its inputs must be available to properly verse time according to the counts in sequence_length.  If you can suggest a way to improve performance or, e.g., make a simpler dynamic sequence reversal system (which does not rely on a monolithic op) then I would like to hear it.

another implicit performance penalty I noticed is that when using deep LSTM networks, using MultiRNNCell instead of manual construction can be 2-3X faster (I think because it uses a single while loop)
the problem with deep BLSTMs is that you can't do them with a single cell or a single while loop (layer output dependency) which means it incurs such a huge penalty solely due to many while loops involved
any thoughts on a more "light weight" while loop ?
Note: with big output size/batch size the performance gap decreases, however the big sizes are less useful, and I do think on cards bigger than GTX 960, even the big sizes would suffer same penalty

@ebrevdo Maybe I don't understand something but is it possible to execute forward pass of dynamic_rnn on one GPU and backward pass on an another GPU. Should it be two times faster in this case?
@ASDen It looks like you made opposite conclusions. Can you clarify what is faster MultiRNNCell or manually constructed cells?

@avostryakov for deep networks (e.g. 8 layers and more) MultiRNNCell can be 2-3x faster than manual construction

@ASDen Thank you! I'm just trying to make my code faster. A simple architecture with embedding layer, 2 LSTM layers with dynamic_rnn (sequence_length is None) + classification on top of last hidden state works 30% slower than the same architecture on theano+lasagne. I thought that tensorflow 0.9 was optimized enough.

@ASDen apologies; in fact, there is no execution barrier because the following can be run in parallel:
chunk 1:
reverse x
y_rev = lstm(x_rev)
y_bak = reverse y_rev
chunk 2:
y_fw = lstm(x)
then you need to wait for both of these chunks to finish before you can concat them.
dynamic bidirectional rnn doesn't even bother with the concat - you get both pieces and can concat them if you wish.
right now, running the fw & reverse on multiple GPUs would require creating a special device setter and calling bidirectional rnn within that context.  see, e.g., the replica_device_setter function, the result of which you would pass to tf.device.

@avostryakov can you provide some details about the sizes of your inputs, number of frames, depth of your RNN, and cell size?

@ebrevdo Size of input: 100, Number of time steps: 400, Depth: 2-3 layers if I understood correctly, cell size (hidden state size): 400.

@ebrevdo much thanks, this should solve the problem for multiple devices
but what about a single device (e.g. a single GPU) ?
as a side note, when I tried to run two different versions of my code on parallel, I notice only ~ 50% decrease in performance (e.g. when a single instance takes n seconds, running two parallel instances takes only 1.5n not 2n seconds) so this should be doable and the device has the capacity for it, but I was wondering if TF provides any mechanism for controlling this

@avostryakov are you using MultiRNNCell?  is this unidirectional or bidirectional rnn?  you could also try using the new LSTMBlockCell in tf.contrib.rnn instead of the base BasicLSTMCell, which may improve your performance.  Let me know how that works for you.

@ASDen you mean for running two replicas on the same worker in parallel?  Probably your best bet is to just run multiple python training threads and use the same session in each of them.  They can even read minibatches off the same queue.  If you're using a Supervisor, then you can use its managed_session object.

You can also use Supervisor's loop fn to start a bunch of training threads, and synchronize their exits.  See Supervisor and search for "Supervisor.loop"

@ebrevdo By the way, LSTMBlockCell didn't work together with optimizers during training as I mentioned here: https://github.com/tensorflow/tensorflow/pull/2002#issuecomment-239411957 Was it fixed already?
My original question was simple: Should it be two times faster if I execute forward pass on one GPU and backward pass on another comparing to do it on one GPU. No MultiRNNCell. Input for both layers is the same. Add hidden states of both passes together in the end.

@avostryakov almost.  the hidden states, if you concatenate them, will have to run on one of the GPUs, and this will require a copy.  however, this is trivial compared to the hard work the LSTM cells are doing in the forwards & backwards passes.  So the larger your cell batch size, depth, and number of iterations, the closer the performance should get to 2x.

Does that resolve your issue?

@ebrevdo If you ask me then yes, you answered my question. Thank you!

Great! For any orthogonal questions we can open a different, more focused, issue.


Fix il2cpp linking fails on platforms other than iOS

These meta files for iOS plugins had different settings than other files, and as a result, they were included in builds for platforms other than iOS.
Modified to match settings in other meta files.

Thank you very much @kshoji!


dockerContainerStats('*') does not return all containers

Describe the bug
dockerContainerStats('*') does not return all containers stats
To Reproduce
Steps to reproduce the behavior:

Bad code
const containersStats = await si.dockerContainerStats('*');

Working code
const  containersList = await si.dockerContainers();
const containersIds = [];
for(let container of containersList) {
containersIds.push(container.id.substring(0,12));
}
const containersStats = await si.dockerContainerStats(containersIds.join());

Environment (please complete the following information):

systeminformation package version:
systeminformation: "^5.17.12"
OS: Ubuntu 22
Docker version 20.10.23, build 7155243]

This is because Docker sometimes returns IDs of different lengths when getting a list of containers and container statistics.

@Adeloyd thank you for reporting. As I was not able to reproduce this, can you provide the output of:
const si = require('systeminformation');

const containersList = await si.dockerContainers();
for(let container of containersList) {
    console.log('-' + container.id + '-');
}

Thank you in advance!

@sebhildebrandt I have 100-300 new containers launched every day. This error appeared 2 times in a month and I was able to solve it only when it appeared. There is currently no way to show the error.

@Adeloyd seems that only the exited containers are not shown. Can you confirm this?

@Adeloyd ... fixed. Version 5.18.4 just released.


Add Graphic Software

https://github.com/MaxGripe/awesome-graphic-software
This list includes graphic editing applications, both popular and lesser-known ones. Each application on this list deserves recognition, although these types of apps are usually highly specialized and serve very specific tasks.
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

[x] Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it. Instead use #2242 for incubation visibility.
[x] Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
[x] You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions. Comments pointing out lint violation are allowed, but does not count as a review.

https://github.com/sindresorhus/awesome/pull/3146#issuecomment-2365300796
https://github.com/sindresorhus/awesome/pull/2541#issuecomment-2365301792

[x] You have read and understood the instructions for creating a list.
[x] This pull request has a title in the format Add Name of List. It should not contain the word Awesome.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

[x] Your entry here should include a short description of the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb. It should not contain the name of the list.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

[x] Your entry should be added at the bottom of the appropriate category.
[x] The title of your entry should be title-cased and the URL to your list should end in #readme.

Example: - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.

[x] No blockchain-related lists.
[x] The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

[x] Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
[x] Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
[x] The default branch should be named main, not master.
[x] Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

[x] It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
[x] The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

[x] The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

[x] Non-generated Markdown file in a GitHub repo.
[x] The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
[x] Not a duplicate. Please search for existing submissions.
[x] Only has awesome items. Awesome lists are curations of the best, not everything.
[x] Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
[x] Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to a maximum of half the width of the original image.
Don't include both a title saying Awesome X and a logo with Awesome X. You can put the header image in a # (Markdown header) or <h1>.

[x] Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
[x] Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

[x] Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.
Must not feature Contributing or Footnotes sections.

[x] Has an appropriate license.

We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

[x] Has contribution guidelines.

The file should be named contributing.md. The casing is up to you.
It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
The section should not appear in the Table of Contents.

[x] All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
[x] Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

[x] Does not use hard-wrapping.
[x] Does not include a CI (e.g. GitHub Actions) badge.You can still use a CI for linting, but the badge has no value in the readme.
[x] Does not include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

Why is this an awesomelist. I'm not a maintainer, but the list you've made seems very limited.  Your curation criteria, IMO, could be more clear

Quality over quantity is preferred in the contribution guidelines. I selected the applications that I believe are simply the best. If anyone thinks something has been overlooked, they can always add it themselves to this list :)

I think the description for Aseprite could have been better. Since currently it is difficult to understand just by looking at
"Impossible not to recommend. " part, what it does.
You could change it to something more descriptive like "Animated Sprite Editor and Pixel Art Tool" which is given on their website.

Thank you. I have updated the description according to your suggestion :)

Awesome lists requires a lot more effort. This is too far from being mergable. Work on it more and try again in a few months.

I don't think so, but thanks for the feedback