[5.10][Concurrency] Handle cases where a property initializer is subsumed by another property for IsolatedDefaultValues.

Explanation: SE-0411 applies nonisolated to implicit initializers when the initializer does not require actor isolation because all property types are Sendable with nonisolated initializer expressions. This was done by looking at the properties and initial values from the memberwise initializer. However, property wrappers and init accessors can have an actor isolation that's different from the initializer expression that it subsumes. If the backing property wrapper initializer is global actor isolation but the wrapped value initializer is not, the compiler incorrectly applied nonisolated to implicit initializers, and SILGen later errored because the property wrapper backing initializer was skipped due to mismatching isolation, e.g.

@MainActor
@propertyWrapper struct RequiresMain<Value>  {
  var wrappedValue: Value

  init(wrappedValue: Value) {
    self.wrappedValue = wrappedValue
  }
}

struct S { // error: return from initializer without initializing all stored properties
  @RequiresMain private var x = 10
}

To fix this, skip property initializers that are subsumed, e.g. by an init accessor or a backing property wrapper initializer, and always consider the subsuming initializer to determine whether an implicit initializer can be nonisolated.
This change also lessens the source break of SE-0411 by still emitting member initializers in implicit constructors when the initializer violates actor isolation to preserve the behavior of existing code when concurrency diagnostics are downgraded to warnings in Swift 5 mode.

Scope: Only impacts code built with -strict-concurrency=complete or -enable-upcoming-feature IsolatedDefaultValues that uses global-actor-isolated property wrappers with Sendable, nonisolated wrapped value expressions and implicit initializers.
Risk: Low risk; this change is relatively narrow in scope, and I've also downgraded the relevant compiler errors to warnings until Swift 6 to prevent any other implicit initializer bugs from causing source breakage. Note that the source break mentioned in https://github.com/apple/swift/pull/70839 still applies for explicit initializers; the bug here was only with actor isolation inference for implicit initializers.
Testing: Added new tests.
Main branch PR: https://github.com/apple/swift/pull/71033

@swift-ci please test

@swift-ci please test

@swift-ci please test


Does not complete for inner type on lock guards.

Hi! Thank you for your effort on this wonderful project. It's a lifesaver for me :)
I would love it if it was possible to add completion for T when you have things like RwLockReadGuard<T>, RwLockWriteGuard<T>, MutexGuard<T>, etc.
Thank you.

I did this for Box earlier but the approach I used was rather crude. This could easily be extended to the types you mentioned but doing this separately for each one involves a lot of repetition.
What would be ideal is to find implementations of Deref for a given type and then look for methods on the type T.


bootstrap css should not be added with media=> screen

love the skinny extension and this theme. I noticed an issue though, when adding the bootstrap.css stylesheet module you should not add the 'media'=>'screen' option  bootstrap.css has its own media directives in it and wrapping in screen causes it not to work.
to fix:
change:
'bootstrap-3.0.3/css/bootstrap.css'=>array('media'=>'screen')
to
'bootstrap-3.0.3/css/bootstrap.css'
in booty/base/Skin.php

Thanks for the tip. I'll make this change for the next release.


Update kubedock to 0.17 and build latest tag

Kubedock 0.17 brings the following changes:
https://github.com/joyrex2001/kubedock/releases/tag/0.17.0

I already tested this image in https://github.com/RedHatInsights/rhsm-subscriptions/pull/3962 using my own built image.


Docker build currently failing

Looks like a build on DockerHub with the current Dockerfile is failing with the following error:
Running setup.py (path:/tmp/pip_build_root/pandas/setup.py) egg_info for package pandas
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip_build_root/pandas/setup.py", line 840, in <module>
**setuptools_kwargs
File "/usr/lib/python3.4/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 239, in __init__
self.fetch_build_eggs(attrs.pop('setup_requires'))
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 264, in fetch_build_eggs
replace_conflicting=True
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 620, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 858, in best_match
return self.obtain(req, installer) # try and download/install
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 870, in obtain
return installer(requirement)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 314, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 616, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 646, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 834, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1040, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1025, in run_setup
run_setup(setup_script, args)
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 52, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "/usr/lib/python3/dist-packages/setuptools/compat.py", line 78, in execfile
exec(compile(source, fn, 'exec'), globs, locs)
File "setup.py", line 31, in <module>
return sys.platform == "darwin"
RuntimeError: Python version >= 3.5 required.
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip_build_root/pandas/setup.py", line 840, in <module>
**setuptools_kwargs
File "/usr/lib/python3.4/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 239, in __init__
self.fetch_build_eggs(attrs.pop('setup_requires'))
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 264, in fetch_build_eggs
replace_conflicting=True
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 620, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 858, in best_match
return self.obtain(req, installer) # try and download/install
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 870, in obtain
return installer(requirement)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 314, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 616, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 646, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 834, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1040, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1025, in run_setup
run_setup(setup_script, args)
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 52, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "/usr/lib/python3/dist-packages/setuptools/compat.py", line 78, in execfile
exec(compile(source, fn, 'exec'), globs, locs)
File "setup.py", line 31, in <module>
return sys.platform == "darwin"
RuntimeError: Python version >= 3.5 required.
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/pandas
Storing debug log for failure in /root/.pip/pip.log
Removing intermediate container 14f102f30eae
The command '/bin/sh -c pip3 install nibabel pandas' returned a non-zero code: 1

@dr-xenia you may have been building from cached layers, I get a similar error building with docker 19.03.8 on Xenial host machine (PRETTY_NAME="Ubuntu 16.04.6 LTS"):
Step 6/47 : RUN pip3 install nibabel pandas
 ---> Running in 4b8674140932
Downloading/unpacking nibabel
Downloading/unpacking pandas
  Running setup.py (path:/tmp/pip_build_root/pandas/setup.py) egg_info for package pandas
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip_build_root/pandas/setup.py", line 42
        f"numpy >= {min_numpy_ver}",
                                  ^
    SyntaxError: invalid syntax
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip_build_root/pandas/setup.py", line 42

    f"numpy >= {min_numpy_ver}",

                              ^

SyntaxError: invalid syntax


Introduce error types to improve error handling

Description:
With the introduction of Error Handling through Interceptors, the errors occurs during the request-response pipeline can be intercepted by the error interceptors. To improve the error handling, different error types can be introduced so that they can be treated differently at error interceptors. This has been done for security errors.
Related to : Proposal: Error Handling #2669

Errors intercepted by HTTP error interceptors :

Error
Error Type
Is implemented

Executing Interceptors - Interceptor Level
500 - no next service to be returned
InterceptorReturnError

500 - request context object does not contain the configured interceptors

500 - next interceptor service did not match with the configuration

500 - target service did not match with the configuration

Other internal errors when executing resource/remote functions
Same as the returned error type
✔

Finding Service - Listener Level
404 - no service has registered for listener

404 - no matching service found for path

500 - Found non-matrix parameter in path

Finding Resource - Service Level
404 - no matching resource found for path

405 - Method not allowed

Consumes & Produces - Service Level
406 - Not Acceptable

415 - Unsupported Media Type

Databinding - Service Level
500 - Error in casting path param

400 - no query param value found

500 - Error in casting query param

400 - no header value found
HeaderBindingError

400 - header binding failed

400 - data binding failed
PayloadBindingError

Security
401 - Unauthorized errors - Resource Level
ListenerAuthnError
✅

403 - Forbidden errors
ListenerAuthzError
✅

Resource execution -  Resource Level
500 - Internal errors
Same as the returned error type
✔

I have listed the errors which can be intercepted by the current error handler (HTTP version 2.3.0) with the proposed error types. @shafreenAnfar @chamil321 please add you thoughts


[Android] My app is stuck at the opening screen

Summary

It has a problem at this time. It hangs like that without opening the book on android, virtual machine development. With ios I do it again and it runs normally.
Here is what I am doing to test it out
import { memo } from 'react';
import isEqual from 'react-fast-compare';
import Wrapper from '@components/wrapper';
import { Reader } from '@epubjs-react-native/core';
import { useFileSystem } from '@epubjs-react-native/file-system';
function Library() {
  return (
    <>
      <Wrapper safeAreaViewProps={{ flex: 1, safeAreaBottom: 0 }} isHeadLinearGradient>
        <Reader
          src="file:///Users/banguyen/Desktop/accessible_epub_3.epub"
          fileSystem={useFileSystem}
          flow="scrolled"
        />
      </Wrapper>
    </>
  );
}

export default memo(Library, (prevProps, nextProps) => isEqual(prevProps, nextProps));

What platform(s) does this occur on?
Android
What workflow(s) does this occur on?

  },
  "dependencies": {
    "@epubjs-react-native/core": "^1.4.5",
    "@epubjs-react-native/file-system": "^1.1.3",
    "@hookform/resolvers": "^3.3.1",
    "@react-native-async-storage/async-storage": "^1.19.3",
    "@react-native-community/netinfo": "^9.4.1",
    "@react-native-community/slider": "^4.5.3",
    "@react-native/metro-config": "^0.72.11",
    "@react-navigation/bottom-tabs": "^6.5.8",
    "@react-navigation/native": "^6.1.7",
    "@react-navigation/native-stack": "^6.9.13",
    "@react-navigation/stack": "^6.3.17",
    "axios": "^1.5.0",
    "dayjs": "^1.11.13",
    "i18next": "^23.4.9",
    "immer": "^9.0.19",
    "logt": "^1.5.0",
    "moment": "^2.29.4",
    "native-base": "^3.4.28",
    "numeral": "^2.0.6",
    "react": "18.2.0",
    "react-fast-compare": "^3.2.2",
    "react-hook-form": "^7.46.1",
    "react-i18next": "^13.2.2",
    "react-native": "0.72.4",
    "react-native-confirmation-code-field": "^7.3.1",
    "react-native-device-info": "^10.9.0",
    "react-native-error-boundary": "^1.2.4",
    "react-native-fast-image": "^8.6.3",
    "react-native-fs": "^2.20.0",
    "react-native-gesture-handler": "^2.12.1",
    "react-native-image-crop-picker": "^0.41.2",
    "react-native-linear-gradient": "^2.8.3",
    "react-native-localize": "^3.0.2",
    "react-native-pager-view": "^6.4.1",
    "react-native-permissions": "^3.9.0",
    "react-native-reanimated": "3.14.0",
    "react-native-reanimated-carousel": "^3.5.1",
    "react-native-render-html": "^6.3.4",
    "react-native-restart": "^0.0.27",
    "react-native-safe-area-context": "^4.7.2",
    "react-native-safe-area-view": "^1.1.1",
    "react-native-screens": "^3.25.0",
    "react-native-splash-screen": "^3.3.0",
    "react-native-svg": "^13.13.0",
    "react-native-tab-view": "^3.5.2",
    "react-native-track-player": "^4.1.1",
    "react-native-webview": "^13.12.3",
    "react-query": "^3.39.3",
    "react-redux": "^8.1.2",
    "redux": "^4.2.1",
    "redux-persist": "^6.0.0",
    "yup": "^1.2.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.20.0",
    "@babel/preset-flow": "^7.18.6",
    "@babel/runtime": "^7.20.0",
    "@react-native-community/eslint-config": "^3.2.0",
    "@tsconfig/react-native": "^2.0.2",
    "@types/i18n-js": "^3.8.0",
    "@types/jest": "^29.2.1",
    "@types/numeral": "^2.0.2",
    "@types/react": "^18.0.24",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.2.1",
    "babel-plugin-module-resolver": "^4.0.0",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "eslint": "^8.19.0",
    "jest": "^29.2.1",
    "metro-react-native-babel-preset": "0.73.7",
    "prettier": "^2.4.1",
    "react-test-renderer": "18.2.0",
    "typescript": "4.8.4"
  },
  "engines": {
    "node": ">=16"
  },
  "jest": {
    "preset": "react-native",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ]
  }
}

Your .epub file
No response
Minimal reproducible example
No response
I confirm that i have

[X] I looked for a solution to my problem in other open and resolved issues
[X] I checked the examples provided solve my problem
[X] I have verified that my problem is not caused by a third-party library
[X] I cloned the project environment examples and still the problem persists
[X] I'm using the latest available version of the library and its complements

Same issue


error TS2559: Type '{ referrerPolicy: string; }' has no properties in common with type 'DetailedHTMLProps<ImgHTMLAttributes, HTMLImageElement>'.

TypeScript Version:  3.0.0-dev.20180609

Search Terms:
Code
function Test() {
  return <img referrerPolicy="never" />;
}

Expected behavior:
Actual behavior:
Playground Link:
Related Issues:

Maybe we have same problem:joy: #24830

You might have better luck sharing this on StackOverflow. This is not a support forum, it is one for reporting compiler/language bugs and suggestions.
If you believe you are running into a compiler bug, please share a minimal repro project that demonstrates the issue you are running into and why you believe this is a compiler bug and not a declaration file issue or library usage problem.


Disable rotation in QuestionnaireActivity

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes #3620
Temporary fix.
Engineer Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[x] I have built and run the FHIRCore app to verify my change fixes the issue and/or does not break the app
[x] I have checked that this PR does NOT introduce breaking changes that require an update to Content and/or Configs? If it does add a sample here or a link to exactly what changes need to be made to the content.

Code Reviewer Checklist

[ ] I have verified Unit tests have been written for any new feature(s) and edge cases
[ ] I have verified any strings visible on UI components are in the strings.xml file
[ ] I have verifed the CHANGELOG.md file has any notable changes to the codebase
[ ] I have verified the solution has been implemented in a configurable and generic way for reuseable components
[ ] I have built and run the FHIRCore app to verify the change fixes the issue and/or does not break the app

@FikriMilano will the long term fix for allowing rotation be tracked under #3620 ?


Check if customers have access to the analytics-panel-server metrics data

Towards https://github.com/giantswarm/roadmap/issues/364
The /metrics endpoint for the analytics-server currently exposes personally identifiable information (via the user_login and user_email labels).
We need to check if customers have access to the /metrics endpoint of the backend server (as this would mean we are leaking personal information.
If customers do have access, we'll need an upstream PR to not send identifiable data. If customers don't have access, we can have Prometheus drop these labels.
Either way, let's talk as a team after finding out what the backend security is like.

$ curl -Ss https://grafana.g8s.ghost.westeurope.azure.gigantic.io/grafana-analytics-panel-server/metrics | head -n 5
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0

customers have access to the analytics panel metrics data, but that's because it doesn't require authentication currently
first step: we need to put this behind authentication

OK so putting this behind OAuth2-Proxy works, including sending data from the frontend.
I haven't tested this as a customer yet and I have a feeling that's not going to be as easy. Essentially I think it works now because I'm authenticated to both Grafana and the OAuth2-Proxy, but customers probably won't be. I need to do some more testing but first I need to figure out why I can't log in as a customer user.

OK got my login sorted, but I can't add a panel as a customer user so I'll switch over to #379 so I have some dashboards to test on.

Looks like it doesn't work for customers w/ oauth proxy, we need to either:

make oauth-proxy work for customers
find another way to secure the endpoint

We chatted with Theo and decided it would be best to get this working with OAuth2 and specifically even better if it used dex as this would be the same mechanism/cookies/headers as Grafana itself which makes it easier to reason about, etc.
One idea is to use the same redirect mechanism, i.e. nginx-IC annotations nginx.ingress.kubernetes.io/auth-(signin|url) but with dex, the question is can dex be used that way.

Managed to get authentication working for the analytics server by re-using Grafana authentication. Here is a proof from giantswarm and customer perspective respectively.

analytics-panel-server is now using grafana as auth mechanism. Meaning you only get access to analytics-panel-server if you have access to Grafana. Otherwise you get greeted with a http 500 error, 401 would be preferable but hey it works.


Deletion in doubly LL

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Added deletion of nodes functionality in Doubly Linked List program in JavaScript.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Closes: #4087

Kindly review @HarshCasper :)


Use common STANZA for bn and evp tests

This moves the BN and EVP tests to use common file-parsing routines.

Could you add [extended tests] to last commit?

Since we are at it. Looking at output for corrupted say test/bnexp.txt. It reads "Failed Exp test at 16". I'd argue that it's too terse. It should mention 'line' and even file name might be handy. Yes, it does say "not ok 1 - test/bnexp.txt" at the end, but one should keep in mind that output might be long and it would be nice to have relevant information grouped.

I changed all messages to be file:line text ...  like this:
    # ERROR:  @ test/bntest.c:134
    # unexpected A ^ E value

    # ERROR: (BIGNUM) 'expected == actual' failed @ test/bntest.c:135
    # --- expected
    # +++ actual
    #                                                               bit position
    # -                                                         ba6d7ac431:    0
    # +                                                         aa6d7ac431:    0
    #                                                           ^

    # INFO:  @ test/bntest.c:1996
    # test/bnexp.txt:12 Failed Exp test

only that last line was changed, obviously.

new commit pushed that addresses all your feedback, @dot-asm  :)

Thanks

thanks for all the useful feedback!  commit ae269dd on master.


README: fixed a small typo

:+1:

Coverage decreased (-4.1%) to 88.52% when pulling 06e2487f32d15bc7c8de1fc8b87877dd0701ed54 on piquadrat:feature/readme-typo-fix into d81b981236b22cad9c65ba03d2fbdea0c1cfa947 on aldryn:develop.


Trill multicast vs publish

Hello,
I'd like to experiment with a Trill lib a little bit and was wondering what is the best approach for use case where there is a single 'source stream' for example trading data, like individual trades and many queries for such source stream, where first query would be Where that would narrow down trades to individual instruments. In a writing queries guide I've read about multicast that is necessary for such use case, but when looking at the source code I've also found about Publish .
I'm not really familiar with rx so that is a little bit confusing for me when to use Multicast vs Publish , what would you suggest? Or perhaps it's better to create separate streams instead of single one for each Where so then multicast is not necessary? Do you know any guidelines, lessons learned about that? I'd love to read more, but couldn't find anything in docs.
I've also seen mentions about partitioning in the source code, is this only related to group operator or something that could also be useful for my use case?
I'll be setting low batch  size (< 5, maybe less), are there any settings that I could tweak for very near real-time queries to get best perf, sacrificing throughput, but getting lowest latency possible ?
Thanks a lot!

Multicast would be the best fit when you have a source that you would like to use to feed to a fixed number (known a priori) of receiver sub-queries. The source is Subscribed to exactly once, Trill inress, batching, and/or columnarization occur exactly once, and the same data is fed to all the multicast subscribers. The Subscribe to source happens as soon as the required number of Subscribe operations are performed on the Multicast endpoint.
Publish is the dynamic version -- you create a Publish endpoint that anyone can dynamically Subscribe to even runtime. The (single) Subscribe to upstream occurs when you call Connect on the endpoint. Any new subscribers after a connect simply receive the stream starting from that point forward. Note that because  such a subscribe latches on to the stream mid-stream, the user needs to be careful not to use end edges, because then you could have an end edge without a corresponding start edge, which would be a malformed stream. For this reason, I would avoid Publish unless you know what you are doing.
A third option is to use neither, just call Subscribe on the source separately for each query. This results in multiple Subscribe calls being made to the source, which may be more expensive (as each Subscribe will have its own Trill ingress, batching, etc.), but in this case, the source becomes responsible for generating a correct stream to each subscriber independently.

The "partitioned" versions of the operators that you see in the code has to do with a feature called Partitioned Streams. If you ingress data as PartitionedStreamEvents or specify a partition lambda at ingress, you essentially turn this feature on.
What the feature does is allow Trill to handle multiple timelines - one per key - instead of a single one. Handling disorder, for instance, becomes a per-partition concern. Ordinarily, time in Trill is considered a global construct that is uniform across all data that is seen. With partitions, each individual partition is allowed to progress time individually. The downside is that you cannot then query across partitions; whatever query you specify is applied per-partition.
For example, consider a scenario where you have 10k sensors measuring temperature, and you want to find the maximum temperature per sensor per day. Without partitions, the time that each sensor's data is measured against a single advancing timeline. The disorder policies are applied globally. That means that if 100 of those 10k sensors are lagging well behind, then you will either not see results until they have caught up or that lagging data will be either dropped or have their time adjusted.
However, given that the query is returning answers per-sensor, there is really no reason for one sensor's data being behind or ahead to impact any other sensor's data. That's what partitions allow - each sensor will have its own timeline that is not impacted by any other.

@badrishc , @cybertyche I really appreciate your thoughtful responses, thank you!
@badrishc I think I get it now and I'll use Publish I think, as from what I understand it's perf characteristics are the same as Multicast but it's more flexible for my use case, I'm perfectly fine with it's drawbacks (missing events if subscribing later on, I also don't use edge events).
Am I understanding it correctly that I call streamable.Publish() only once, something like:
var streamSource = new Subject<StreamEvent<SensorEvent>>();

var streamable = streamSource.ToStreamable();

var connectableStreamable = streamable.Publish();

connectableStreamable.Connect();

var query1 = connectableStreamable
                 .Where(...).ToStreamEventObservable();
var query2 = connectableStreamable
                 .Where(...).ToStreamEventObservable();

await foreach (var sensorEvent in client.SensorEventsStream())
{
   streamSource.OnNext(StreamEvent.CreatePoint(DateTimeOffset.UtcNow.Ticks, sensorEvent));
}

And that code subscribes once to ingress observable, so Trill ingress, batching, and/or columnarization occurs exactly once. If I wouldn't use publish then each query would cause separate subscription for underlying ingress observable and that would be less performant, please correct me if I'm wrong.
BTW, is pattern  as in code above  of going from IAsyncEnumerable to Observable correct assuming I don't have Observable to begin with?
@cybertyche all makes sense, thanks for the details, very useful info.
I'd also like to ask how I could add high availability for queries as in example above? In docs I've seen example where there is a single source->single query, but I'm not sure how to implement that for single-source/ingress-> multiple queries? I know I need to register both input and output, but in that case input is one and it's shared.
Regarding optimization for low latency, are there any special tweaks/knobs I should know about? Like using row storage vs column storage or vice versa, small buffers size, or dropping of out of order messages? Or it's a matter of experimentation for given use case?
Do you recommend using structs as stream event payload? Or that would be the case only for small structs? Currently I'm using readonly structs but given that there is no way to pass those by reference (in operator) it won't bring any benefits, am I right?

I'm going to write a longer response to cover more of the above, but I wanted to say one thing quickly. Just because your input events are not start-end edge pairs does not mean that they won't be generated by operators in the Trill query. Whenever possible, Trill operators try to produce intervals, but sometimes for latency reduction they will produce start-end edge pairs so that downstream computation is not affected.
It's actually what you're seeing in your sample query when you remove the AlterEventDuration(1) call - you're not seeing duplicate data, you're seeing start/end edge pairs.
More to come...

@cybertyche oh, that makes sense, thank you! Looking forward for more of your thoughts.
Maybe I should also clarify what I'd like to achieve in general.
There will be one input stream (IAsyncEnumerable to be precise) with data  and many various queries for it (aggregations,  grouping etc) using sliding or hopping windows with various window sizes. I'd like to add high availability for it as well so wouldn't have to replay everything back on each restart, but as mentioned not sure how to implement that in one input, many outputs scenario.
Input events will be point events ingested in batches (between 1 and 50 or so) and after each batch I'd like to 'flush' all queries and produce outputs.
I'd like to achieve constant low latency if possible as well, sacrificing overall throughput as I don't expect more than 500-10000 events per second.
I've experimented with setting DataBatchSize to 1 but that is not optimal as it produces outputs for each event in batch obviously.
I've experimented with adding punctuation events after each batch being added to input stream with startTime = lastEventTicks + 1 (as otherwise last event won't be flushed from what I understand).
That seems to be working, but I can't achieve reliable latency characteristics, sometimes it's 10 microseconds, sometimes it's 10 milliseconds (I measured calls to streamSource.OnNext(StreamEvent.CreatePunctuation where stream source is rx Subject).
Setting ForceRowBasedExecution wasn't helping either, in general it was slower.
I've tried sliding windows (so output is produced for each input) and hopping windows (where period was set to one millisecond in ticks), but that also didn't help with reliable latency. What I'd like to achieve is more or less constant latency it can be like 2ms but always in that ballpark (0-2ms), not 0.05ms and 10ms sometimes. Would partitioning stream help here? Is something like that even possible with Trill? I find this lib pretty innovating and fascinating, but perhaps it's not tailored for my use case and I shouldn't fight with it. Would appreciate your thoughts on that.
BTW, sliding/hopping windows I've experimented with never reset to 0 if no event is provided during window period (there were punctuation events only), is that expected?
Thanks!

Curious the behavior you are seeing about windows not resetting to 0 - we're not seeing that behavior. If you have a repro for that that is small, please let us know and we will investigate.
One thing that may be helpful for you is rather than injecting punctuation to induce flushing, you can set an ingress policy of FlushPolicy.FlushOnBatchBoundary. That will induce a flush whenever the ingress batch is full.
Another thing is that a single query can have multiple outputs with no trouble in Trill - you can register a single ingress point and multiple egress points in a QueryContainer object and have each output subscribed to separately.
A couple of questions about your scenario that may help me figure out what may be the next step.

Is your data sorted by time, or is it arriving out of order at all?
If it is unsorted or only partially sorted, are your queries all done per-key? (if so, then partitioned streams may be for you. If not, then it is not relevant.)
How important is the reliable latency? Does it always need to be the same amount per time interval, or does it merely need to be below some threshold?

Sure, I've created simple project (.net core 3 preview) with repro - https://github.com/tadeuszwojcik/trill-sample . I bet it's me not doing something incorrect ... just not sure what.
Regarding QueryContainer, ok that makes sense, just to make sure I understand it correctly for sample code like below (uses publish):
var streamSource = new Subject<StreamEvent<SensorEvent>>();

var streamable = streamSource.ToStreamable();

var connectableStreamable = streamable.Publish();

connectableStreamable.Connect();

var query1 = connectableStreamable
                 .Where(...);
var query2 = connectableStreamable
                 .Where(...);

I could register two QueryContainers , first for (streamSource, query1) and second for (streamSource, query2) correct?
My data is already sorted by time, I think most of the queries would be done per-key, yes, I've already looked a little bit into partitioned streams.
Regarding latency constraints, being below threshold is good enough for me.
Thanks!

I'm looking at our code for QueryContainer and the Publish method - I'm thinking it's not going to work in its current form because QueryContainer needs to know all of the input and output registry sites in order to do checkpoint restoration properly. I'm looking into this though and may have a different solution for you.
I do think I've gotten to the bottom of the repro. The issue is that by default Trill does not output data when a group has no data. Think of it like SQL in this respect - when using a GROUP BY clause, one only gets aggregate results returned for groups that contain data. Trill followed this precedent.
Now there is a way to change this. Instead of your call to .Count(), you can instead call:
.Aggregate(w => w.Count().OutputDefaultWhenEmpty())
Count() is just a macro that expands to Aggregate(w => w.Count()), and OutputDefaultWhenEmpty is a method that modifies an aggregate expression to override the default behavior of not outputting when there is no matching data.

Also, as your data is pre-sorted, you may be able to benefit from a faster ingress method. Instead of a Subject<StreamEvent> you can instead create a Subject<ArraySegment<StreamEvent>>. It's a little generic-happy, I know. But it reduces the method overhead of all of the OnNext calls in favor of indexing through the array segment. It's an array segment so that you can reuse the same array repeatedly and populate it with start and end positions.
The downside is that FlushPolicy is not implemented on it yet, so it will only flush on punctuations (default behavior) but if that is important here we can do that fairly quickly.

Great, thanks for looking into this!
I'll play around with ArraySegment as it seems to be perfect for my use case.

@cybertyche  I've looked a bit more into ingress via ArraySegment and it's looking really nice so far, thanks for the tip!
I've been reading over and over query writing guide as wanted to investigate if I can model potentially infinite (time wise) events in Trill. It seems to be possible using Start/End edge events, but only if  for end event I know start time of it and I don't. Would it be possible to add End events without knowing start time of such event or it's not possible as both start time and event payload are used to 'match' start and end edges?
I wonder how I could model differently perhaps, for example let's say I have a sensors sending temperature readings and last reading of temperature is what gets reported, so unless I get the update I should always return last read value. I was thinking that whenever update occurs I would add two events one 'End' event and one 'Start' for new updated temperature, but maybe that's not the way to model it? Would really appreciate your thoughts on that as I'm bit lost right now.

ClipEventDuration will indeed do the trick for you, but the method "Sessionize" is a convenient macro method that you may want to use that could give you a simpler way to model the operation.
I sure wish we didn't need to have end events list the start time associated with it, but unfortunately there are semantic consequences with removing that dependency. Oh, the discussions we had about that one...

For the benefit of others, I ran into the same issue and was able to achieve consistent low latency by using:
var punctuationInterval = TimeSpan.FromMilliseconds(200);
var ingress = eventStream.ToAtemporalStreamable(TimelinePolicy.WallClock(punctuationInterval));

This seems to be the only method of ingress which uses an internal timer that pumps punctuations periodically and reliably, which helps maintain consistent low latency.
Goes without saying that this method does not allow for disorder policies but that wasn't required in our case, especially given that any disorder policy will delay the output by the latency specified.


Update table aws_cost_by_account_monthly to query actual usage without the credits applied

We make use of the aws_cost_by_account_monthly to query the AWS billing costs for our AWS Accounts every week. One of our AWS Organizations has Credits applied, due to which the report for this week shows the total after the credits were applied. We want to filter or get the actual usage of the accounts without credits applied.
References
Add any related links that will help us understand the resource, including vendor documentation, related GitHub issues, and Go SDK documentation.
Looking at the AWS SDK for Go - it should be possible to get just the “Usage”:

RECORD_TYPE - The different types of charges such as RI fees, usage
costs, tax refunds, and credits.

In the below screenshot, you will notice that the query results for the April 1st week are almost $0 or in negative values in contrast with the other months.

The below screenshot corresponds to Cost Explorer UI where you could exclude “Credit” when building the report. Looking for something similar in the table.

@vkumbha, thank you for raising the issue, we will look into it.


ELK Stack version updated to 6.2.4

Release notes:

https://www.elastic.co/guide/en/elasticsearch/reference/6.2/release-notes-6.2.4.html
https://www.elastic.co/guide/en/logstash/current/logstash-6-2-4.html
https://www.elastic.co/guide/en/kibana/current/release-notes-6.2.4.html

Thanks @dawitnida!


Support changing the hotkey

This would be useful for those who already use the R key for something else. Like, say, me. :)
Probably best done by adding support for https://github.com/flamewave000/dragonflagon-fvtt/tree/master/lib-df-hotkeys that way it also plays nicely with other modules that use it to handle keybinding.

Accepted. I'll see if I can't knock that out

@xdy added functionality in version 1.0.1
you can now choose a hotkey between a-z. i did not end up using the dragon flagon library


Popup: fixed popup mask

Please makes sure the items are checked before submitting your PR, thank you!

[ ] Rebase before creating a PR to keep commit history clear.
[ ] Only One commit
[ ] No eslint errors

#529
沿用原有逻辑，只保留一个mask；
修正当destroy其中一个popup时不要影响到其他popup的mask


发送图片报错

`
const { FileBox } = require('file-box');
const delay = new DelayQueueExecutor(2 * 1000)
const talker = bot.Contact.load(msg.payload.talkerId)
let pic_file = FileBox.fromFile(require('path').join(_dirname, '`./../../files/pic/Overview'+ talker.payload.id +'.png'))
delay.execute(() => talker.say(pic_file))
`
报如下错
throw new Error([
^
Error: Wechaty Puppet Unsupported API Error. Learn More At https://github.com/wechaty/wechaty-puppet/wiki/Compatibility
at Object.throwUnsupportedError (D:\Wang\workspace\wxt\node_modules\wechaty-puppet\dist\cjs\src\throw-unsupported-error.js:6:11)
at PuppetXp.messageSendFile (D:\Wang\workspace\wxt\node_modules\wechaty-puppet-xp\dist\cjs\src\puppet-xp.js:571:20)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async D:\Wang\workspace\wxt\node_modules\wechaty\dist\cjs\src\sayable\deliver-sayable.js:25:17
at async WechatifiedUserClass.say (D:\Wang\workspace\wxt\node_modules\wechaty\dist\cjs\src\user-modules\contact.js:300:23)

拉取puppet-xp测试可以发图片，npm install的xp和wechaty兼容性目前不太明确

It seems that you have to pull the latest code， try npm install wechaty-puppet- xp@next , run it again and let me know the result.

Had same issue. git pull alreadu up to date.
Run npm install wechaty-puppet- xp@next gives me
 No matching version found for xp@next.

Had same issue. git pull alreadu up to date.
Run npm install wechaty-puppet- xp@next didn't solve it for me. It was working yesterday and stoped working today.
my code
      const testPNG = path.resolve('./docs/images/fruits.jpg')
      const fileBox = FileBox.fromFile(testPNG)
      await message.say(fileBox)

@atorber, it is still an issue. any solution

Error: Wechaty Puppet Unsupported API Error. Learn More At https://github.com/wechaty/wechaty-puppet/wiki/Compatibility
at Object.throwUnsupportedError (D:\Wang\workspace\wxt\node_modules\wechaty-puppet\dist\cjs\src\throw-unsupported-error.js:6:11)
at PuppetXp.messageSendFile (D:\Wang\workspace\wxt\node_modules\wechaty-puppet-xp\dist\cjs\src\puppet-xp.js:571:20)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async D:\Wang\workspace\wxt\node_modules\wechaty\dist\cjs\src\sayable\deliver-sayable.js:25:17
at async WechatifiedUserClass.say (D:\Wang\workspace\wxt\node_modules\wechaty\dist\cjs\src\user-modules\contact.js:300:23)

this issue is with the error
Error: Wechaty Puppet Unsupported API Error.

if you hava success run npm install wechaty-puppet-xp@next this will never happen,Because this error point has been removed.
So I guess that although you encounter the problem of failed image sending, it is not the same reason.
Can you provide your error information？

Had the same issue. But my case is that each time I start WeChat, the bot could send 1~2 images successfully, then throws the
error.
My solution:
Run WeChat in Windows 7 compatible mode.


ISPN-5626 Clean up missing parts for Distributed Streams

Fixed various issues with cache loader
Added a bunch of tests ported from Entry Retriever

https://issues.jboss.org/browse/ISPN-5630

Added back in test that was disabled on accident.

CI passed earlier http://ci.infinispan.org/viewLog.html?buildId=28489&tab=buildResultsDiv&buildTypeId=bt9

testing

Looks good to me.

pulling

merged, tks @wburns !


Can't type Hyphen/Dash in most input boxes

if I want to type, for example, "selenium-hub" as a container Name, I cannot press the "-" key. I am forced to type "-" in the browser address bar, and copy/paste into the name field.
OSX / Chrome.

This restriction is leftover from old versions of Docker that didn't accept hyphens or underscores, we can probably safely remove it now.

No problem on Ubuntu / Chrome.

Could this be related to OSX only?


Use stage marker (authenticate) for wrapping middleware

fixes #76

Hi @CrescentFresh, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, DNFBOT;

thanks - could you do that PR against the dev branch please?

I've closed this pull request.
I've created a new pull request against the dev branch. I think.
https://github.com/IdentityServer/IdentityServer3.AccessTokenValidation/issues/138


Update to the latest version of mrustc

Verify that build from scratch and update from current version of mrustc both work correctly.

Updated. This will need to be done again periodically.

Needs to be done again, as the target revision fails under some configurations (likely due to UB) - see thepowersgang/mrustc#74

@thepowersgang updated.

@spott there's nothing special about the pinned mrustc commit, it's just a version that's known to build and run successfully using the commands in this script.

Thanks.  I'll have to try and find a version that compiles for OS X.


LN reader error

Steps to reproduce
When I want to download or update a chapter in LNreader, it always gives an error and always exits the application. also there is always the info "LNreader has stopped". I don't know what that means, there's no problem with the plugins. can any of you help
Expected behavior
can't download chapters
Actual behavior
can't download chapters
LNReader version
2.0.0
Android version
10.2.3
Device
MIUI global 10.2.3
Other details
__When I want to download or update a chapter in LNreader, it always gives an error and always exits the application. also there is always the info "LNreader has stopped". I don't know what that means, there's no problem with the plugins. can any of you help
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with a source, I should be opening an issue in the sources repository.
[X] I have updated the app to version 2.0.0.
[X] I will fill out all of the requested information in this form.

Can you try making a Google drive backup and deleting the app?

no, I don't know why, when I do a backup on the drive it will immediately exit the application. What is the problem?


Add non-functional tutorial CI requirement

#876
The tutorial will contain a number of steps the user will perform manually. To ensure those steps are accurate, a CI pipeline should be created that execute the steps in the same order as specified in the tutorial.

Before I merge this, do you have any suggestions for how to word that requirement while keeping it agnostic to the CI system one might use?

@mogul Good point! The description was changed from "CI pipeline" to a more generic "automated test suite". That seemed to take out any implementation bias. Is that in line with your suggestion?

Yup, thanks!


jdk15 JFX15 dependency problem

I use KeybordFX with Java 8 which works fine. I just remove the mofule-info  file and build the jar.
When running with jdk15 JFX15 I get this exception. It looks like javax.xml.bind.JAXBContext is removed in JDK15.
Is this dependency really needed?
java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

Could you comment on how you fixed this so others can benefit?

Hi,
Wen building KeyboardFX I found dependencies to jakarta.activation-1.2.2.jar, jakarta.xml.bind-api-2.3.3.jar and jaxb-impl-2.3.3.jar in resulting keyboardfx-demo-jpro.zip.
I guess those jars are not needed when running on Java 8.


Include chromium binary in dashboards-reports artifact

Signed-off-by: Joshua Li<EMAIL_ADDRESS>Description
Include chromium binary in dashboards-reports artifact, binaries are from https://github.com/opensearch-project/dashboards-reports/releases/tag/chromium-<IP_ADDRESS> (docs)
Limit dashboards-reports dashboards plugin to linux platform only, darwin-arm64 and windows-arm64 chromium binaries are not available yet.
Issues Resolved
#934
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #937 (d96b2ea) into main (041b3fb) will decrease coverage by 0.21%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #937      +/-   ##
==========================================
- Coverage   92.24%   92.02%   -0.22%
==========================================
  Files          88       88
  Lines        2321     2321
==========================================
- Hits         2141     2136       -5
- Misses        180      185       +5

Impacted Files
Coverage Δ

src/system/temporary_directory.py
82.75% <0.00%> (-13.80%)
:arrow_down:

src/system/os.py
92.30% <0.00%> (-7.70%)
:arrow_down:

Continue to review full report at Codecov.

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

@gaiksaya @peterzhuamazon any objections to me merging this in as is?

@gaiksaya @peterzhuamazon any objections to me merging this in as is?

Nope 🚢 it!

@gaiksaya @peterzhuamazon any objections to me merging this in as is?

I have, please see my last comment about zip/unzip.

I have, please see my last comment about zip/unzip.

Which one, not seeing one about zip/unzip

@gaiksaya @peterzhuamazon any objections to me merging this in as is?

I have, please see my last comment about zip/unzip.

@peterzhuamazon I don't see your comment either, is this blocking or can this change be merged?

I am merging @peterzhuamazon please create another issue if we need follow up


Block : embedded block doesn't show the correct first page on entry

Bug Description
During the bug bash @BrittanyIRL created a post with a block of embedded stories and noted that one of the stories, when clicked, did not show the correct first page of that story.
It should be noted that this story was a copy of an exisitng template (fashion), and that I was unable to reproduce the issue during the creation of this bug, however @littlemilkstudio verified that this happened for him as well.
Expected Behaviour
Clicking on the story should present the user with the story, starting on the front page
Steps to Reproduce

Create a story eg https://stories-new-wordpress-amp.pantheonsite.io/2021/03/16/brittany-bug-bash-1-5-0-b/
Embed the story into a post/page using the Grid layout option eg https://stories-new-wordpress-amp.pantheonsite.io/2021/03/16/brittany-bug-bash-1-5-0-b/
Click on the associated story and observe that the first page shown is incorrect

Screenshots

Additional Context

Plugin Version:
WordPress Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

@bmattb @BrittanyIRL @o-fernandez  As mentioned on the doc, the block shows the story's poster image. If you don't have a poster image you can't/won't see a preview. So this is working as intended. In the screenshot it looks like no poster was set for the story.
Suggesting to close this as it's working as intended.

Yea, I'm wondering if I was happening upon a malformed story that someone was messing around with in staging. If it y'all can't reproduce it I bet I was looking at weird data instead of weird behavior

I don't believe that is the error being flagged. If you see the screenshot, the first page presented in the actual story isn't the story's first page. But @littlemilkstudio point above may still hold true

Here's a story that explains the difference between the poster image and the cover page: https://wp.stories.google/stories/poster-and-cover/
In the screenshot above I see the fashion story with a nice cover page (= the first page of the story. But it does not have a poster image (which needs to be set in the Document panel).
The block displays the poster image, not the cover page.

Wow, sorry about that 🤦  after re-reading three times I finally got that it's about the story not rewinding. Apologies!
Unfortunately, I can't really reproduce that behavior either.
Especially since we specifically implemented a change yesterday to leverage a new amp-story-player feature to make sure users always start on the first page when opening the lightbox (See #6771).
If this doesn't work as expected for everyone, it's most likely out of our hands as it would require an upstream change to the amp-story-player.
Still suggesting to close as it cannot be reproduced


set method called too many times in castable classes

Laravel Version
10*
PHP Version
8.1
Database Driver & Version
No response
Description
I noticed that the set method inside of a custom cast class called too many times when you want to attempt to assign a value to model's property:
Steps To Reproduce
<?php

namespace App\Casts;

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;

class Json implements CastsAttributes
{
    public function get(Model $model, string $key, mixed $value, array $attributes): array
    {
        return json_decode($value, true);
    }

    public function set(Model $model, string $key, mixed $value, array $attributes): string
    {
        dump('set');

        return json_encode($value);
    }
}

protected $casts = [
    'test_column' => Json::class,
];

$user = User::factory()->create();

$user->test_column['test'] = 'value';

$user->save();

You will see in the terminal:
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19
"set" // app/Casts/Json.php:19

I don't see a huge issue here, sorry.

this is an actual issue please re-reopen it


Obtain oracle review for updated App Gateway documentation

Please see work-in-progress article

AB#1276329

gh-245.pdf


Bower Update

Bower tells me that the latest version is 0.5 instead of 0.7

@ManueBonjean should be fixed... I forgot to push the tags


Newer versions of HDFS changed the bean name

the new name is: Hadoop:service=DataNode,name=FSDatasetState

and the metric name is case sensitive

¯_(ツ)_/¯


Slider Events

Perhaps I missed it, but I'm not seeing any documented events from the slider. After reviewing the code I do see some events emitted. I'm only looking to check if the slider values have been changed by the user, "dirty". I am wondering whether it's safe to use the valuechanged and highValueChanged events?  Perhaps you have another recommendation?

there is a valueChange event

valueChange and valueChangeHigh events come from two-way binding of value and valueHigh. I left out the other events intentionally, because I wanted to focus on basic functionality first.
I agree that more events would be a good idea now that the library is stable. I'll have a look again at what events I can support and I'll include the events in documentation.

I am trying to use valueChange, but when I used it, I can't access to 'this' (error : ERROR TypeError: "this is undefined"). So value change detection is useless because I can't adapt my application according to the value. Is this normal or am I doing something wrong ?

I added support for user-initiated events in v1.1.1 based on onStart, onChange and onEnd from the old library. I updated documentation and added an example with events to the demo app.


Orisa gains overhealth when using supercharger during fortify

Orisa gains 100 shields from using Terra surge in OW2

mentioned in commit 8120dab0003bc93bb1a7fa97b18b53dc6428a435


objc_msgSend test segfaults on 1.9 branch on aarch64 with clang 6

Both objc_msgSend and objc_msgSend_optimised are segfaulting in the libobjc2 fest on my aarch64 machine. I'm using the 1.9 branch and clang 6.
Those are the only two tests that fail.
Do you have recommendations on how to diagnose this?
Thank you.
70/70 Test #70: ObjCXXEHInterop_optimised ..................   Passed    0.02 sec

97% tests passed, 2 tests failed out of 70

Total Test time (real) =  89.19 sec

The following tests FAILED:
         49 - objc_msgSend (SEGFAULT)
         50 - objc_msgSend_optimised (SEGFAULT)
Errors while running CTest
Makefile:140: recipe for target 'test' failed
make: *** [test] Error 8

The test also segfaulting on libobjc2 master using clang-8.0 aarch64 binaries.

This test checks a lot of things, can you see which assertion is failing?

I am seeing the same issue when running the objc_msgSend* tests on Android aarch64. Interestingly, while the non-optimized versions segfault, the _optimised variants crash with "stack corruption detected (-fstack-protector)".
Following are some details from the failed tests. I haven’t been able to run them in a debugger yet to see where exactly they are crashing (haven’t figured out how to do that with command-line tools on Android yet), but please let me know if there is anything else I could try to narrow this down.

Logs

RUNNING objc_msgSend...
Throwing 0x64e7bb6770
New personality function called 0x71a3c36200
Class: GNUCOBJC
LSDA: 0x64e7ba5588
Search phase...
Filter: 1
Class name: @id
0x1 type: 1
Found id catch
handler: 2
Found handler! 2
New personality function called 0x71a3c36200
Class: GNUCOBJC
LSDA: 0x64e7ba5588
Phase 2: Fight!
Installing context, selector 1
Beginning catch 0x71a3c36200
objc catch
Ending catch
Segmentation fault
FAILED: objc_msgSend
RUNNING objc_msgSend_legacy...
Throwing 0x7d9147d460
New personality function called 0x7d914362f0
Class: GNUCOBJC
LSDA: 0x5dfef4f2a8
Search phase...
Filter: 1
Class name: @id
0x1 type: 1
Found id catch
handler: 2
Found handler! 2
New personality function called 0x7d914362f0
Class: GNUCOBJC
LSDA: 0x5dfef4f2a8
Phase 2: Fight!
Installing context, selector 1
Beginning catch 0x7d914362f0
objc catch
Ending catch
Segmentation fault
FAILED: objc_msgSend_legacy
RUNNING objc_msgSend_legacy_optimised...
Throwing 0x736107d460
New personality function called 0x73610362f0
Class: GNUCOBJC
LSDA: 0x5e5fb3d750
Search phase...
Filter: 1
Class name: @id
0x1 type: 1
Found id catch
handler: 2
Found handler! 2
New personality function called 0x73610362f0
Class: GNUCOBJC
LSDA: 0x5e5fb3d750
Phase 2: Fight!
Installing context, selector 1
Beginning catch 0x73610362f0
objc catch
Ending catch
stack corruption detected (-fstack-protector)
Aborted
FAILED: objc_msgSend_legacy_optimised
RUNNING objc_msgSend_optimised...
Throwing 0x5f132c3770
New personality function called 0x7f31636200
Class: GNUCOBJC
LSDA: 0x5f132b2968
Search phase...
Filter: 1
Class name: @id
0x1 type: 1
Found id catch
handler: 2
Found handler! 2
New personality function called 0x7f31636200
Class: GNUCOBJC
LSDA: 0x5f132b2968
Phase 2: Fight!
  This is the only case where an exception has to unwind through objc_msgSend (normally this function tail calls the method, so the unwinder has only to unwind from the method to the caller of the method).
I don't see anything obviously wrong in the code.
Here we spill all of the arguments, sp is moved down by 208 bytes during this operation.
Then we spill fp and lr, constructing the linked list of {fp, lr} pairs on the stack that can be used for fast stack traces (see section 5.2.3 of AAPCS64).
Then we update fp to point to the first entry in this list.
(Finally)[https://github.com/gnustep/libobjc2/blob/d16faeded958f94033092631b6988fb15654f995/objc_msgSend.aarch64.S#L57] we tell the unwinder how to recover fp and lr.
The only thing I can think of is that we may need a cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16 directive either before or after the other .cfi directives, if the unwinder is not using the frame pointer to restore the stack pointer.  Can you try adding that and see if it effects the crash behaviour at all?

Thanks for looking into this! Just to clarify, do you mean adding the .cfi_def_cfa_offset directive before/after the two .cfi_offset directives?
I know nothing about CFI, but doing a quick GitHub search seems to indicate that it’s pretty common to have .cfi_def_cfa_offset right before .cfi_offset. I’ll give it a try.

So with this change:
--- a/objc_msgSend.aarch64.S
+++ b/objc_msgSend.aarch64.S
@@ -55,7 +55,9 @@
        add    fp, sp, 192
        stp    \receiver, x8, [sp, #-16]!
        .cfi_def_cfa fp, 0
+       .cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16
        .cfi_offset fp, 0
+       .cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16
        .cfi_offset lr, 8
                                              // We now have all argument registers, the link
                                              // register and the receiver spilled on the

I get this output:
Throwing 0x6398477770
Throw returned<PHONE_NUMBER>
Aborted

(exit code 134)

With this change:
--- a/objc_msgSend.aarch64.S
+++ b/objc_msgSend.aarch64.S
@@ -54,6 +54,7 @@
        stp    fp, lr, [sp, #192]
        add    fp, sp, 192
        stp    \receiver, x8, [sp, #-16]!
+       .cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16
        .cfi_def_cfa fp, 0
        .cfi_offset fp, 0
        .cfi_offset lr, 8

The output looks unchanged:
Throwing 0x5b25a68770
New personality function called 0x7044036200
Class: GNUCOBJC
LSDA: 0x5b25a57588
Search phase...
Filter: 1
Class name: @id
0x1 type: 1
Found id catch
handler: 2
Found handler! 2
New personality function called 0x7044036200
Class: GNUCOBJC
LSDA: 0x5b25a57588
Phase 2: Fight!
Installing context, selector 1
Beginning catch 0x7044036200
objc catch
Ending catch
Segmentation fault

(exit code 139)
And with this:
--- a/objc_msgSend.aarch64.S
+++ b/objc_msgSend.aarch64.S
@@ -54,8 +54,9 @@
        stp    fp, lr, [sp, #192]
        add    fp, sp, 192
        stp    \receiver, x8, [sp, #-16]!
-       .cfi_def_cfa fp, 0
+       .cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16
        .cfi_offset fp, 0
+       .cfi_def_cfa_offset ARGUMENT_SPILL_SIZE + 16
        .cfi_offset lr, 8
                                              // We now have all argument registers, the link
                                              // register and the receiver spilled on the

I get this:
Throwing 0x58fd04f770
Throw returned<PHONE_NUMBER>
Aborted

(exit code 134)
I apologize for my lack of knowledge here and stumbling in the dark like that...

Okay, I think someone with access to an AArch64 device is going to have to do the tedious thing of stepping through the assembly and seeing where the stack corruption happens.

Hi @davidchisnall I am not sure how to step thru the assembly, but I have an AArch64 instance booted up on EC2 that I could give you access to. (It's one of their new a1.large instances.) I confirm the same segfaults occur there.

(Interestingly, although the libobjc2 tests still segfault, after building gnustep with RUNTIME_VERSION=1.9 everywhere and libdispatch from the swift corelibs as per the script below, my basic gnustep demos do not crash upon run anymore)
https://github.com/plaurent/gnustep-build/blob/master/ubuntu-16.04-clang-6.0-runtime-1.9-ARM/GNUstep-buildon-ubuntu1604_arm.sh

Hi David,
I stepped through code and assembly, but haven't been able to find  where the stack corruption is actually happening.  Execution runs until the very end of the main() function in Test/objc_msgSend.m.
Now that I know how a bit about how to use lldb -- do you have a further suggestion on how to spot where the corruption might be happening?
Thank you,
Patryk
ubuntu@ip-172-30-4-177:~/libobjc2/build/Test$ lldb ./objc_msgSend
(lldb) target create "./objc_msgSend"
Current executable set to './objc_msgSend' (aarch64).
(lldb) breakpoint set --file objc_msgSend.m --line 257
Breakpoint 1: where = objc_msgSend`main + 2416 at objc_msgSend.m:257, address = 0x0000000000402a44
(lldb) run
Process 24922 launched: './objc_msgSend' (aarch64)
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = breakpoint 1.1
    frame #0: 0x0000000000402a44 objc_msgSend`main at objc_msgSend.m:257
   254          fprintf(stderr, "Direct IMP call took %f seconds. \n", times[2]);
   255          printf("%f\t%f\t%f\n", times[0], times[1], times[2]);
   256  #endif
-> 257          return 0;
   258  }
(lldb) si
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402a48 objc_msgSend`main at objc_msgSend.m:257
   254          fprintf(stderr, "Direct IMP call took %f seconds. \n", times[2]);
   255          printf("%f\t%f\t%f\n", times[0], times[1], times[2]);
   256  #endif
-> 257          return 0;
   258  }
(lldb)
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402a4c objc_msgSend`main at objc_msgSend.m:257
   254          fprintf(stderr, "Direct IMP call took %f seconds. \n", times[2]);
   255          printf("%f\t%f\t%f\n", times[0], times[1], times[2]);
   256  #endif
-> 257          return 0;
   258  }
(lldb)
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402a50 objc_msgSend`main at objc_msgSend.m:257
   254          fprintf(stderr, "Direct IMP call took %f seconds. \n", times[2]);
   255          printf("%f\t%f\t%f\n", times[0], times[1], times[2]);
   256  #endif
-> 257          return 0;
   258  }
(lldb)
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402a54 objc_msgSend`main at objc_msgSend.m:257
   254          fprintf(stderr, "Direct IMP call took %f seconds. \n", times[2]);
   255          printf("%f\t%f\t%f\n", times[0], times[1], times[2]);
   256  #endif
-> 257          return 0;
   258  }
(lldb)
Process 24922 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000414238 objc_msgSend`_OBJC_CLASS_Test
objc_msgSend`_OBJC_CLASS_Test:
->  0x414238 <+0>:  .long  0x004141a8                ; unknown opcode
    0x41423c <+4>:  .long  0x00000000                ; unknown opcode
    0x414240 <+8>:  .long  0x00000000                ; unknown opcode
    0x414244 <+12>: .long  0x00000000                ; unknown opcode

Hi David,
Ignore my previous message.  I think I found the assembly leading to the corruption -- check this out:
ubuntu@ip-172-30-4-177:~/libobjc2/build/Test$ lldb ./objc_msgSend
(lldb) target create "./objc_msgSend"
Current executable set to './objc_msgSend' (aarch64).
(lldb) l
   178  {
   179          __objc_msg_forward2 = forward;
   180          __objc_msg_forward3 = forward_slot;
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
   184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb) breakpoint set --file objc_msgSend.m --line 184
Breakpoint 1: where = objc_msgSend`main + 88 at objc_msgSend.m:184, address = 0x000000000040216c
(lldb) run
Process 4609 launched: './objc_msgSend' (aarch64)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = breakpoint 1.1
    frame #0: 0x000000000040216c objc_msgSend`main at objc_msgSend.m:184
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
-> 184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb) si
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402170 objc_msgSend`main at objc_msgSend.m:184
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
-> 184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402174 objc_msgSend`main at objc_msgSend.m:184
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
-> 184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402178 objc_msgSend`main at objc_msgSend.m:184
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
-> 184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x000000000040217c objc_msgSend`main at objc_msgSend.m:184
   181          TestCls = objc_getClass("Test");
   182          int exceptionThrown = 0;
   183          @try {
-> 184                  objc_msgSend(TestCls, @selector(foo));
   185                  printf("We never make it here if we set it as a breakpoint.");
   186          } @catch (id e)
   187          {
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000401200 objc_msgSend`objc_msgSend
objc_msgSend`objc_msgSend:
->  0x401200 <+0>:  adrp   x16, 19
    0x401204 <+4>:  ldr    x17, [x16, #0x88]
    0x401208 <+8>:  add    x16, x16, #0x88           ; =0x88
    0x40120c <+12>: br     x17
(lldb) n
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x0000000000401204 objc_msgSend`objc_msgSend + 4
objc_msgSend`objc_msgSend:
->  0x401204 <+4>:  ldr    x17, [x16, #0x88]
    0x401208 <+8>:  add    x16, x16, #0x88           ; =0x88
    0x40120c <+12>: br     x17

objc_msgSend`sel_registerName:
    0x401210 <+0>:  adrp   x16, 19
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x0000000000401208 objc_msgSend`objc_msgSend + 8
objc_msgSend`objc_msgSend:
->  0x401208 <+8>:  add    x16, x16, #0x88           ; =0x88
    0x40120c <+12>: br     x17

objc_msgSend`sel_registerName:
    0x401210 <+0>:  adrp   x16, 19
    0x401214 <+4>:  ldr    x17, [x16, #0x90]
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x000000000040120c objc_msgSend`objc_msgSend + 12
objc_msgSend`objc_msgSend:
->  0x40120c <+12>: br     x17

objc_msgSend`sel_registerName:
    0x401210 <+0>:  adrp   x16, 19
    0x401214 <+4>:  ldr    x17, [x16, #0x90]
    0x401218 <+8>:  add    x16, x16, #0x90           ; =0x90
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010d0 objc_msgSend
->  0x4010d0: stp    x16, x30, [sp, #-0x10]!
    0x4010d4: adrp   x16, 18
    0x4010d8: ldr    x17, [x16, #0xff8]
    0x4010dc: add    x16, x16, #0xff8          ; =0xff8
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010d4 objc_msgSend
->  0x4010d4: adrp   x16, 18
    0x4010d8: ldr    x17, [x16, #0xff8]
    0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010d8 objc_msgSend
->  0x4010d8: ldr    x17, [x16, #0xff8]
    0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
    0x4010e4: nop
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010dc objc_msgSend
->  0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
    0x4010e4: nop
    0x4010e8: nop
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010e0 objc_msgSend
->  0x4010e0: br     x17
    0x4010e4: nop
    0x4010e8: nop
    0x4010ec: nop
(lldb)
Process 4609 stopped
* thread #1, name = 'objc_msgSend', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0

David,
Also interestingly, I see that branch target register x17 is changed from a value similar to the previous successful jump to a very large value right before the crash!
Patryk
Process 4808 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010d4 objc_msgSend
->  0x4010d4: adrp   x16, 18
    0x4010d8: ldr    x17, [x16, #0xff8]
    0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
(lldb) print $x17
(unsigned long) $5 = 4198608
(lldb) n
Process 4808 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010d8 objc_msgSend
->  0x4010d8: ldr    x17, [x16, #0xff8]
    0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
    0x4010e4: nop
(lldb) print $x17
(unsigned long) $6 = 4198608
(lldb) n
Process 4808 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010dc objc_msgSend
->  0x4010dc: add    x16, x16, #0xff8          ; =0xff8
    0x4010e0: br     x17
    0x4010e4: nop
    0x4010e8: nop
(lldb) print $x17
(unsigned long) $7 =<PHONE_NUMBER>20560
(lldb) n
Process 4808 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step over
    frame #0: 0x00000000004010e0 objc_msgSend
->  0x4010e0: br     x17
    0x4010e4: nop
    0x4010e8: nop
    0x4010ec: nop
(lldb) n
Process 4808 stopped
* thread #1, name = 'objc_msgSend', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0

Do you know 480 (0x1e0) would be added to the sp before the return?
(lldb) n
Process 16455 stopped
* thread #1, name = 'objc_msgSend', stop reason = step over
    frame #0: 0x0000000000402764 objc_msgSend`main at objc_msgSend.m:258
objc_msgSend`main:
->  0x402764 <+2212>: mov    w0, wzr
    0x402768 <+2216>: ldp    x29, x30, [sp, #0x1d0]
    0x40276c <+2220>: ldr    x28, [sp, #0x1c0]
    0x402770 <+2224>: add    sp, sp, #0x1e0            ; =0x1e0
(lldb) si
Process 16455 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402768 objc_msgSend`main at objc_msgSend.m:258
objc_msgSend`main:
->  0x402768 <+2216>: ldp    x29, x30, [sp, #0x1d0]
    0x40276c <+2220>: ldr    x28, [sp, #0x1c0]
    0x402770 <+2224>: add    sp, sp, #0x1e0            ; =0x1e0
    0x402774 <+2228>: ret
(lldb) si
Process 16455 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x000000000040276c objc_msgSend`main at objc_msgSend.m:258
objc_msgSend`main:
->  0x40276c <+2220>: ldr    x28, [sp, #0x1c0]
    0x402770 <+2224>: add    sp, sp, #0x1e0            ; =0x1e0
    0x402774 <+2228>: ret

objc_msgSend`.objc_load_function:
    0x402778 <+0>:    str    x30, [sp, #-0x10]!
(lldb) si
Process 16455 stopped
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
    frame #0: 0x0000000000402770 objc_msgSend`main at objc_msgSend.m:258
objc_msgSend`main:
->  0x402770 <+2224>: add    sp, sp, #0x1e0            ; =0x1e0
    0x402774 <+2228>: ret

objc_msgSend`.objc_load_function:
    0x402778 <+0>:    str    x30, [sp, #-0x10]!
    0x40277c <+4>:    adrp   x0, 18
(lldb) up
error: Already at the top of the stack.
(lldb) bt
* thread #1, name = 'objc_msgSend', stop reason = instruction step into
  * frame #0: 0x0000000000402770 objc_msgSend`main at objc_msgSend.m:258
(lldb) n
Process 16455 stopped
* thread #1, name = 'objc_msgSend', stop reason = step over
    frame #0: 0x0000ffffbf6d0398 libobjc.so.4.6`loadSel
libobjc.so.4.6`loadSel:
->  0xffffbf6d0398 <+0>: .long  0x00460830                ; unknown opcode
    0xffffbf6d039c <+4>: .long  0x00000000                ; unknown opcode

libobjc.so.4.6`temporary_dtables:
    0xffffbf6d03a0 <+0>: .long  0x00000000                ; unknown opcode
    0xffffbf6d03a4 <+4>: .long  0x00000000                ; unknown opcode

I'm trying to work out where your assembly comes from and struggling.  x17 isn't used at all in the assembly for objc_msgSend.aarch64.S (even if I look at the disassembly of a compiled version of that file).  Similarly, I can't see that sp adjustment (though I wouldn't be surprised to see a function that spills a lot of registers or allocates on-stack buffers use that much).  That code looks like it's the body of the method, not of objc_msgSend.

Hi David,
I tried putting some print statements in the catch for the first test... and got an odd result.  Notice that "Line 3" is printed even though printf("Line 1\n") is what executed.  Is this looking more like some kind of heap corruption than stack corruption?
Patryk
ubuntu@ip-172-30-4-177:~/libobjc2/build/Test$ lldb ./objc_msgSend
(lldb) target create "./objc_msgSend"
Current executable set to './objc_msgSend' (aarch64).
(lldb) breakpoint set --file objc_msgSend.m --line 187
Breakpoint 1: where = objc_msgSend`main + 316 at objc_msgSend.m:187, address = 0x000000000040201c
(lldb) run
Process 4499 launched: './objc_msgSend' (aarch64)
Process 4499 stopped
* thread #1, name = 'objc_msgSend', stop reason = breakpoint 1.1
    frame #0: 0x000000000040201c objc_msgSend`main at objc_msgSend.m:187
   184                  objc_msgSend(TestCls, @selector(foo));
   185          } @catch (id e)
   186          {
-> 187                  printf("Line 1\n");
   188                  printf("Line 2\n");
   189                  printf("Line 3\n");
   190                  printf("Line 4\n");
(lldb) n
Line 3
Process 4499 stopped
* thread #1, name = 'objc_msgSend', stop reason = step over
    frame #0: 0x0000000000402028 objc_msgSend`main at objc_msgSend.m:188
   185          } @catch (id e)
   186          {
   187                  printf("Line 1\n");
-> 188                  printf("Line 2\n");
   189                  printf("Line 3\n");
   190                  printf("Line 4\n");
   191                  printf("Line 5\n");

Trying the same test with clang-8, it still crashes but much later.  In particular, the exception-related stuff all appears to work correctly.  The crash happens in the call in objc_msgSend.m:212.  This is interesting, because that test should be hitting all of the fast paths in the assembly: it isn't throwing an exception, the dtable is already installed, and so on.  The only thing special in that example is the use of the small objects (requiring it to get the class from a small look-aside table instead of from the [nonexistent] isa pointer).
I'm tempted to write off the other failure as clang-6 generating broken unwind info...

With a fix to that code, the test now runs to the end, but crashes after the return.  It looks as if there may have been some stack corruption along the way still...

I think the newer clang is actually just masking the bug.  It appears as if the stack pointer after the exception is thrown is 16 above where it should be.

So, it turned out that there were three things wrong with the AArch64 version of objc_msgSend that led to failures in this test.  All of these are fixed now.


GH-816: Simplify Validator configuration

Resolves https://github.com/spring-projects/spring-kafka/issues/816

Looks like we still need to add some optional or testCompile dependency:
/home/travis/build/spring-projects/spring-kafka/spring-kafka/src/test/java/org/springframework/kafka/annotation/EnableKafkaIntegrationTests.java:39: error: package javax.validation does not exist
import javax.validation.Valid;
                       ^
/home/travis/build/spring-projects/spring-kafka/spring-kafka/src/test/java/org/springframework/kafka/annotation/EnableKafkaIntegrationTests.java:40: error: package javax.validation does not exist
import javax.validation.ValidationException;
                       ^
/home/travis/build/spring-projects/spring-kafka/spring-kafka/src/test/java/org/springframework/kafka/annotation/EnableKafkaIntegrationTests.java:1539: error: cannot find symbol
		public void validatedListener(@Payload @Valid ValidatedClass val) {
		                                        ^
  symbol:   class Valid
  location: class Listener


Add header with navlinks and logo

Added Header section to the page

Thank you @Owusu-Desmond :+1:


[Electrum] Unable to change default values

Unable to change Retry, Timeout, Stop Gap values in Electrum Settings.

This may be a bug I introduced when adding the auto update of Stop Gap if a user generates too many addresses.
Please also review the Recieve cubit and validate the logic where Stop Gap is updated if user generates more than 20 addresses.


The Training of Interpolation Transformer

Dear author:
In the training of Interpolation Transformer, given the latent space is 5 * 16 * 16, I found the first 16 * 16 and the last 16 * 16 tokens join the gradient propagation. But in the inference of Interpolation Transformer, the first and last 16 * 16 tokens are given. So, in my opinion, the first 16 * 16 and the last 16 * 16 tokens should not take part in gradient back-propagation during the training process? Please correct me if I'm wrong.
Kang

Hi Kang, good point. I think you are right. I suspect that if you mask out the loss on the initial and last frames, it shouldn't affect the model performance.


Data mining starkoverflow

Parsing stackoverflow for potential cadets

We can also add the same tasks for habr, codersrank, github
Or we can just ignore it completely and rise the bar to become the cadet, so it will automatically make it more prestigious. Well, we will still need to scan for talented experts. May be we need both, but not right now.


token is exposed when requesting images

Version
nuxt-directus 3.2.2
nuxt: 3.0.0
Issue
When using const { getThumbnail } = useDirectusFiles(); and getting the image via getThumbnail(image, { ... }) and inserting it in a <img :src="getThumbnail(image, { ... })">, I have recognized, that the directus token is appended to the url inside the rendered <img> tag.
Isn’t that a security problem? I am using a token in order to prevent public access to my API.

Hey, check out this comment: https://github.com/directus-community/nuxt-directus/issues/31#issuecomment-1128606254
Currently its not a bug, but a better support for static tokens is planned.

@Intevel Thanks for the info. Is there any workaround? Is it possible to exclude the token for files? I am thinking of serving only the files via the public access/role without a token.


Fix compatibility: arecord, iscreenshot + add apowerbutton

⚠ Progress checklist

[ ] 🏗 Features fully completed

[x] arecord fixed on latest scrcpy
[x] apowerbutton
[x] iscreenshot fixed on iOS 17+
[ ] mitigate iscreenshot delays when re-trying various ports
[ ] Improve iOS device availabilty error (unnecessary reconnect prompt)

[x] 🔬 Shellcheck issues resolved
[ ] 🔨 All changes tested
[ ] 💬 Terminal output satisfactory

[ ] Remove random JSONs coming from go-ios

[ ] 👀 Diff examined thoroughly
[x] 📝 API changes included in README.md
[x] 📣 Major changes listed in changelog.txt

iscreenshot returning error
Error:
{"level":"warning","msg":"failed to get tunnel info","time":"2024-10-21T13:51:09+02:00","udid":"00008110-000620DC2E52401E"}
📸 Saving screenshot into Apple-iPhone13ProMax-iOS17.3-2024-10-21-13-51-09.png...
🤷 Screenshot failed, error code: 1

Device info: iPhone 13 Pro Max running iOS 17.3

Merging now, please do scream at me if something gets horribly wrong. 🤘


[GOBBLIN-2110]Made retry_exception_predicate configurable in RetryerFactory

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-2110

Description

[x] Here are some details about my PR, including screenshots (if applicable):
RetryerFactory does not give option to set retry_exception_predicate.Made it configurable

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report
Attention: Patch coverage is 41.93548% with 18 lines in your changes missing coverage. Please review.

Project coverage is 41.08%. Comparing base (4721d08) to head (c581fff).
Report is 7 commits behind head on master.

Files
Patch %
Lines

.../org/apache/gobblin/util/retry/RetryerFactory.java
41.93%
16 Missing and 2 partials :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #4001      +/-   ##
============================================
- Coverage     45.48%   41.08%   -4.40%
+ Complexity     3222     2199    -1023
============================================
  Files           705      479     -226
  Lines         27558    20344    -7214
  Branches       2777     2352     -425
============================================
- Hits          12535     8359    -4176
+ Misses        13960    11097    -2863
+ Partials       1063      888     -175

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Py3lex library is not working properly

I created a new project in Pycharm, after which I installed the Py3plex library and the corresponding libraries from the requirements.txt file, after which everything was fine at first glance, I decided to run the code from this link:
https://py3plex.readthedocs.io/en/latest/learning.html
But as a result, I got a completely different result:
https://ibb.co/tcLtWQv
and I'm not talking about interlayer edges, but about the fact that edges were not rendered in layers, an example of a smaller multilayer graph:
https://ibb.co/FzM67bC
Maybe someone knows what is the reason why the visualization does not work correctly?

I have matplotlib version 3.6.0.rc1 and networkX 2.8.8. if you are talking about it, if no,  could you explain more specifically what is required of me so that I can give an opportunity to help me.
Maybe the problem is in today's schedule? "'NoneType' object is not subscriptable"
https://ibb.co/r2HDbhv
and PyCharm does not like these two points:
https://ibb.co/bWmsv9Q
https://ibb.co/n15K0Zv

Hey @Alex1235321, that is not exactly what I meant,  if you take some time and read the code (as one should), you'd realize that the code here was build-inspired in the previous NetworkX versions.
For the undirected version, there is a local fix here(my end only atm)
https://github.com/jsnagai/py3plex/tree/master
ER_multilayer = random_generators.random_multilayer_ER(200,2,0.09,directed=False)
ER_multilayer.visualize_network(show=True, no_labels = True,alphachannel=0.03)
For the directed case, this seems a bit more cumbersome to update perhaps one can take a look on it
Note that I'm just a community-sided contributor and the more advanced questions and also work was done by @SkBlaz  and collabs.
Hope we can keep that cool library updated,
Cheers

Hey, thanks for noticing this. If your fix for undir is general feel free to PR, will check dir case asap (unless you get to it first of course - as mentioned, update should be straightforward but cumbersome)

@jsnagai added you as a collaborator, should you take steps before I get to that

tysm SkBlaz, im a bit busy with other projects on my Ph.D. but I can try to check that as soon as I have some spare time.
Best

Appreciate it!
On Wed, 31 May 2023, 11:38 James Nagai, @.***> wrote:

tysm SkBlaz, im a bit busy with other projects on my Ph.D. but I can try
to check that as soon as I have some spare time.
Best
—
Reply to this email directly, view it on GitHub
https://github.com/SkBlaz/py3plex/issues/19#issuecomment-1569844334, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACMSERCTRWXT2VGFZ5RXGADXI4GP5ANCNFSM6AAAAAAYCJA5OA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Alex1235321 -> could you please retry with py3plex==0.95 -> current builds most likely failed due to nx's breaking changes that are a separate issue alltogether


Core: Switch Parsing syntax issue

Describe the bug
https://github.com/player-ui/player/blob/main/core/player/src/view/parser/index.ts#L124-L126
This function uses invalid syntax, and can not compare localKey to dynamicSwitch
To Reproduce

Expected behavior
localKey can be compared to staticSwitch or dynamicSwitch
Screenshots

Environment:

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context

fixed in #458


Capture stdout of C or FORTRAN solvers

As described in https://github.com/benchopt/benchOpt/pull/25#issuecomment-604082555, we might want to capture stdout of C or FORTRAN solvers, which is not straightforwardly doable with contextlib.redirect_stdout, but something like this solution works.
I wonder if this is something worth adding to benchopt, since it might be useful for multiple solvers, including benchmarks/nnls/solvers/nnls_scipy.py.

The solution above seems a simpler candidate no? It does not handle threaded stream and  capture but if we just want to suppress the stdout, it does the job?

I did a utility context for this in this file: https://github.com/benchopt/benchOpt/pull/51/files#diff-65ee127968665794e19f1abc7bc26fac
It could be used to capture the output for FORTRAN solvers.

Tested in #53, works well !


Update casaCubeRoutines.py

Correction for https://github.com/akleroy/phangs_imaging_scripts/issues/223
Closed myia in else, and reopend after to add in units to cube.

Confirming that this fixed the same issue for me. Merging in.


h1 tag problem

When I input this:
Normal span
[Link A](http://xx.com)

Header 1

[Link B](http://xx.com)

The output string is:

Normal span
Link A

Header 1

[Link B](http://xx.com)

And it displayed like this:

The Link B wasn't processed.
It seams like that all markdown syntax text will not be processed if it after 'h1' tag.

See try.commonmark.org - this is according to the specification.
See the HTML block section in the specification for details.