Disabled Cryptomatte gizmo raises exceptions in non-GUI mode

If you start Nuke in terminal mode and open a script that contains a disabled Cryptomatte gizmo, the knobChanged callback will raise one or more exceptions during the script loading process, depending on the state of the saved gizmo. I've looked over the code, and basically the issue is that in this particular scenario, the node metadata lookup will return None.
https://github.com/Psyop/Cryptomatte/blob/master/nuke/cryptomatte_utilities.py#L86
I don't really have the time to sort this out and submit a pull request right now, but the fix is very simple: Check if exr_metadata_dict is None and bail out if it is.

Ah, we fixed this once before, it's a regression. The issue was as you say. We'll get it fixed after SIGGRAPH.
Thanks a lot for reporting.

This is fixed in the dev branch, it'll be in the next release. Thanks again.


adding few more functions from mod dp_tools

Added few more esl outbound functions which were needed in my use case. Kindly review this and we can plan on adding more functions

Hi, I reverted the features, will also add some test cases and examples for the written functions

Thanks, Merged now.


Added C-n and C-p as aliases for right and left arrows got history-goto-...

...history

Thank! @emacs18


Test # 4/5/6

Challenge http://www.freecodecamp.com/challenges/bonfire-where-do-i-belong has an issue.
Way back I cleared the challange and all tests passed. While revisiting/ code review test# 4,5,6 fail.
please check last three tests as values seem misplaced. This is the code which passed initially and seems right.
function where(arr, num) {
arr.sort(sortNumber);
  var index;
  for(i=0; i<arr.length; i++)
  {
    if (num >= arr[i] && num <= arr[i+1])
    {
      if(arr[i] == num)
      { index = i; }
      else {
        index = i + 1;
      }
    }
  }
  return index;
}

function sortNumber(a,b) {
return a - b;
}
where([2, 5, 10], 15);

vzxv


Event Ruling is redundant across IArbitrable and IArbitrator interfaces

https://github.com/kleros/kleros-v2/blob/7f8be8eccf53f865fa85cbcab810110f974370d7/contracts/src/arbitration/interfaces/IArbitrableV2.sol#L31
https://github.com/kleros/kleros-v2/blob/7f8be8eccf53f865fa85cbcab810110f974370d7/contracts/src/arbitration/interfaces/IArbitratorV2.sol#L25
In order to simplify the IArbitrableV2 interface as possible, Ruling should be removed from it. If arbitrable frontends or systems are interested in whether a Ruling was given, they can opt to emit it voluntarily, or listen to the Ruling event on the arbitrator.

For context:
IArbitrable: the Ruling event was present there in v1, so there's a backward compatibility aspect. Perhaps it doesn't have to be in the interface, but I suspect that many arbitrable apps find it useful, particularly if their ruling was given by an arbitrator on a different chain. We shouldn't expect a Polygon-native arbitrable frontend to necessarily have a connection to Arbitrum.
IArbitrator: the Ruling event was introduced there for the Court frontend (via the subgraph). Since v2 is cross-chain, it's much simpler for the frontend to track the Ruling event in 1 location on the arbitrator side rather than on the arbitrable side which might be on any foreign chain and any arbitrable address.


fix: Rewrite async file store

I found a race condition in the Store after making it async (#542) where the json file would be read back as empty because it was being written at the same time. This code originally came from @sentry/utils but is only used here now. I decided it would be a good idea to review how it works and compare to the requirements for the Electron SDK.
The first thing that became clear after testing is that the store does not reliably flush concurrent changes to disk. If the store is already flushing, it skips flushing entirely and these changes don't make it to disk:
https://github.com/getsentry/sentry-electron/blob/055b1c432b4d25bdb099be9047cd998317ccce87/src/main/store.ts#L50-L63
It uses setImmediate to flush in a non-blocking way but this probably only made sense when all the fs calls were sync. The immediate flushing was only used for sessions where we want changes to make it to disk asap to reliably track abnormal exits.
I stripped the store back to the bare minimum and tested. It's clear that for some usages write throttling is required to keep the number of file writes to a minimum. Flushing to disk on every scope change would result in far too many file writes.
Fully locking store read/write has the potential to impact performance in heavy read/write scenarios but this is not how the store is used. In all cases it's much more important that the data returned by the store is correct and race conditions are avoided.
Store usages
Sessions
Sessions are only read/write at app start/exit. Abnormal session detection relies on being able to read the previous session and quickly write the new session without races.
Scope storage
Scope changes are only stored so that we have a representative scope to be sent with main process native crashes on subsequent app starts. This is write heavy and throttling could result in scope slightly out of sync but since native crashes are already decoupled from JavaScript scope capture this is less of a concern.
Transport queue
The transport queue is used to buffer envelopes for offline support and is only used when events are captured and cannot be sent. It is important that it works correctly and doesn't drop envelopes.
This PR:

Removes sync directory creation and fixes some bugs in mkdirp where the promises weren't awaited and errors caught in try/catch
Simplifies the Store

Removes the broken flushing logic
Uses async-mutex to fully lock reads and writes to remove race conditions

Adds a ThrottledStore that wraps Store and throttles disk writes @ 500ms by default
Session storage uses Store where writes are minimal and throttling may cause missed sessions
The transport queue and scope storage use ThrottledStore because these can see a high number of writes and we don't want every one of these to result in file io.

async-mutex
I spent quite a few hours trying a create what this library already does well.
This code has been vendored and significantly simplified!

It's also worth nothing that in this PR I make both async-mutex and deepmerge use a fixed versions in package.json.
If we're using dependencies and we've fully tested them working for our use case, using a fixed version avoids breakages from patch versions that make semver breaking changes and also avoids supply-chain attacks via these dependencies!

This closes #534


'Oh My Zsh brew plugin' message showing all the time

The message about the bundling of the zsh completion with brew with their 1.0 release keeps showing up.
It says at the end that this message will only appear once, however I have now seen it for the last week or so.
Any idea why that happens?
OSX 10.12
iTerm2
Homebrew 1.0.9
Homebrew/homebrew-core (git revision 3927; last commit 2016-11-06)

That code creates a hidden directory in $ZSH_CACHE_DIR, so that if it's already there it fails and doesn't display the message. Can you check if it is there by running ls -lA $ZSH_CACHE_DIR?

I have the same issue. Here's my results:
ls -lA $ZSH_CACHE_DIR
total 0
drwxr-xr-x 2 abaxter staff 68 Nov  8 10:04 .brew-completion-message
-rw-r--r-- 1 abaxter staff  0 Jun  1 11:20 .gitkeep

Well I don't know what to say. What does which mkdir return? And running the following gives the same result?
$ mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null && echo show || echo "don't show"
$ command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null && echo show || echo "don't show"

which mkdir
mkdir: aliased to nocorrect mkdir -p

and
 abaxter@abaxter-OSX  ~  mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null && echo show || echo "don't show"
show
 abaxter@abaxter-OSX  ~  command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null && echo show || echo "don't show"
don't show

Thanks for the prompt response, if you update with upgrade_oh_my_zsh that should be fixed.

Confirmed fixed. thank you!


fix: walk iife function expression params

What kind of change does this PR introduce?

fix #12044
Did you add tests for your changes?
yes

Does this PR introduce a breaking change?
no

What needs to be documented once your changes are merged?
nothing

blocked by https://github.com/terser/terser/issues/880


fix: function returns formatting

closes #4080
this adds a hardcoded check for function pointer return values, because they are formatting using the built-in formatter which means indents are applied twice.
maybe the better fix would be to check for this when actually formatting the argument chunk, but it looks like this issue is only limited to function return arguments.

friendly bump @Evalir @rkrasiuk


Permission question

According to F-Droid, this app needs the "Modify System Settings" permission. Why?

See README.md:

WRITE_SETTINGS ("Modify system settings") permission: When the system file chooser is opened, it will always use current system orientation, even if the Player app sets its own. Granting this permission via adb (adb shell pm grant com.brouken.player android.permission.WRITE_SETTINGS) or App info screen will allow this app to temporarily enable Auto-rotate to at least partially mitigate this imperfection.


[COLLECTIONS-781] - INDEX_NOT_FOUND Constant

The idea it's create a constant that represent that the Index to search it's not found

Why not have a single shared constant, rather than 1 per class?

Why not have a single shared constant, rather than 1 per class?

Why not have a single shared constant, rather than 1 per class?

HI @sebbASF
I agree with you that we should have  a single shared constant.  What do you think about have this constant in CollectionUtils class?

Why not have a single shared constant, rather than 1 per class?

HI @sebbASF
I agree with you that we should have  a single shared constant.  What do you think about have this constant in CollectionUtils class?

Changed

Changed


[WIP] Add resource api spec

https://issues.redhat.com/browse/OCM-4831

You can add your service to the env, as seen here:
https://github.com/openshift-online/maestro/blob/main/cmd/maestro/environments/framework.go#L134
this is an area of improvement where we need a) documentation or better b) automatically integrate new services.

this is looking good overall. you know you're done when the tests pass :)  Until we get our automation in place, would you please cut and paste the output here for make test && make test-integration?

test passed
% make test-integration
CGO_ENABLED=1 GOEXPERIMENT=boringcrypto go install -ldflags="" ./cmd/maestro
OCM_ENV=testing gotestsum --format short-verbose -- -p 1 -ldflags -s -v -timeout 1h
./test/integration
I1120 14:17:49.084541   99325 framework.go:72] Initializing testing environment
I1120 14:17:49.335392   99325 framework.go:151] Using Mock OCM Authz Client
I1120 14:17:49.335406   99325 framework.go:176] Disabling Sentry error reporting
I1120 14:17:49.372945   99325 api_server.go:145] Serving without TLS at localhost:8000
I1120 14:17:49.373058   99325 healthcheck_server.go:56] Serving HealthCheck without TLS at localhost:8083
PASS test/integration.TestControllerRacing (2.17s)
PASS test/integration.TestResourceGet (0.29s)
PASS test/integration.TestResourcePost (0.25s)
PASS test/integration.TestResourcePatch (0.28s)
PASS test/integration.TestResourcePaging (0.37s)
PASS test/integration.TestResourceListSearch (0.36s)
PASS test/integration.TestUpdateResourceWithRacingRequests (0.80s)
PASS test/integration.TestUpdateResourceWithRacingRequests_WithoutLock (0.73s)
I1120 14:17:54.662892   99325 api_server.go:151] Web server terminated
% make test
CGO_ENABLED=1 GOEXPERIMENT=boringcrypto go install -ldflags="" ./cmd/maestro
OCM_ENV=testing gotestsum --format short-verbose -- -p 1 -v
./pkg/...
./cmd/...
 Otherwise need to wait for #5 merged and rebase


Feature suggestion: "Backlinks" - Links defined the inverse of the way they are currently

I would like the be able to define Links, but in the inverse of the way Links are currently implemented.
Take the example from the docs:
paths:
  /users:
    post:
      responses:
        '201':
          links:
            GetUserByUserId:   # <---- arbitrary name for the link
              operationId: getUser
              # or
              # operationRef: '#/paths/~1users~1{userId}/get'
              parameters:
                userId: '$response.body#/id'
              description: >
                The `id` value returned in the response can be used as
                the `userId` parameter in `GET /users/{userId}`.

If you imagine a system of microservices with many interlinked API schemas... There are going to be dozens of other endpoints in different services which can make use of the userId that results from the POST /users operation. Some of these services will be maintained by different teams, and their API schemas will be in a separate repos etc.
In that context it feels to me quite "back to front" to collect all of these links under the POST /users operation responses, and that instead it would make more sense to define the link on the other side of the relation.
For example on the GET /users/{userId} operation, it would be awesome to have a way to specify that {userId} can be obtained from #/paths/~1users~1/post/responses/201/content/id.
(Possibly as an extension to the Parameters? it would also be useful to be able to set fields in the request body this way, as suggested here ).
In these cases it would be much easier to maintain if the "consumer" API specifies where to get its prerequisites from, rather than having the "producer" API try to list all of the places its data can potentially be used, which is what the Links feature provides currently.
possibly related: #2122 #1594 #1593

It would also be better for tooling (e.g. automated testing etc)
If you want to make a GET /users/{userId} request a tool can just start with the spec where that endpoint is defined and navigate upwards (through the proposed Parameter value links) to determine which prior requests have to be made as prerequisites, and how to do so.
The other way around, as currently, it's not possible. Because, potentially, the tool does not know the location of the doc where the POST /users endpoint is defined. So it can't find the Links which specify how to make a GET /users/{userId} request using the userId from the other request.

+1 to this enhancement request.
We have actually already implemented this capability in our tooling with a spec extension, x-linkback, which we describe as:

An annotation on a parameter or request body property to reference a link object in /components/links that represents the source of the value for this parameter/property.

This is a much more compact way of expressing links, particularly when coupled with referenced parameters -- a single link component and a single x-linkback on a referenced parameter can efficiently express a link to any number of dependent operations.

Since posting the original issue I have also developed an implementation of this idea for use in some tooling I'm building
I will document it and post back here with a concrete proposal

For context I am in early stages of building tooling around automation of integration tests for app backends which span multiple services.
One important building block, for this tool to be able to cut out manual test-definition boilerplate, is to be able to derive a dependency graph of the endpoints which are exposed across multiple services.  OpenAPI's ability to have URI references which span across independent API docs is very useful for this.
However I found three areas where vanilla OpenAPI 3.0 is insufficient:

can't link values from a response into fields of a downstream request body... as described in this separate issue https://github.com/OAI/OpenAPI-Specification/issues/1594
the current "forward-pointing" Link feature means that upstream operations need to specify all their downstream dependents. I think it would be far more maintainable to invert this relationship and have downstream operations define their upstream prerequisites. That is the current thread discussed here.

I think these first two would be generally useful for many use-cases. The last one is maybe a bit more specific to my particular tool use-case:

where there are multiple independent upstream operations that can lead to a single downstream operation (i.e. upstream operations which are not required together, an OR rather than an AND), I would like a way to uniquely identify the required-together groups of them.

I have documented here the extension properties I defined in order to get this library working:
https://apigraph.readthedocs.io/en/latest/reference/openapi-extensions.html
(it is still WIP but I can now successfully derive a dependency graph at least)
The parts that are relevant to this thread are x-apigraph-backlinks properties on both Operation and Components objects, and the new Backlink object.
You may ignore the parts about requestBodyParameters and chainId and treat those as separate issues (although for my purpose they are all related and necessary).

And a basic example:
openapi: 3.0.0
paths:
   /2.0/users/{username}:
     get:
       operationId: getUserByName
       parameters:
       - name: username
         in: path
         required: true
         schema:
           type: string
       responses:
         '200':
           description: The User
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/user'
   /repositories/{username}:
     get:
       operationId: getRepositoriesByOwner
       parameters:
         - name: username
           in: path
           required: true
           schema:
             type: string
       x-apigraph-backlinks:
         Get User by Username:
           operationId: getUserByName
           response: "200"
           parameters:
             username: $response.body#/username

This shows a "backlink" from the getRepositoriesByOwner operation to its prerequisite, the "200" response of the getUserByName operation.
We use a runtime expression (as found elsewhere in OpenAPI) to get a value from the getUserByName response body ($response.body#/username) and use it as the value of the getRepositoriesByOwner operation's username parameter.

After applying OAS extensively towards many different applications, like AWS API Gateway, client generation, documentation, design, and many other things, I MUST request that this be brought to the forefront of discussion for the TSC.
Of the many proposals around this topic, any would do. I don't think the problem is the how, it's the why. Therefore rather than being noise amongst the other great proposals on this thread, I will advocate for why this is a paramount need for OAS.
Documentation
Every set of backend services, whether micro or monolithic, has operations dependent upon responses from the others. It's almost safe to say, that for documentation purposes, if there are no fragments of a request body that aren't from another operation's response body, the two requests don't belong in the same spec because they'd have nothing to do with each other.
It's a common process for any type of modeling tool to granularly define relationships. Whether it be an ERD or a Function Call Graph, there needs to be a way for description.
Further, it's often ambiguous whether identically named parameters are in fact the same or sourced from other responses without explicit declaration. For one to make assumptions about parameters based off name in a large OAS inevitably leads to bugs.
Common, Practical Use Cases

Refresh tokens

Typically are returned along with an authentication token and expiration date. The refresh token is then used along with other parameters in the request body to facilitate the "refresh". Examples: The Github API (Login) -> The Github API (Refresh), at the time of this writing, it's impossible to represent this common pattern in OAS

Bookmarking Video Content

Imagine you provide a video streaming platform and want to allow users to partially watch content, then resume playing later. To achieve this at a basic level, you'll need to provide some form of identifier for the video, the user's authentication information, and the playhead. A reasonable place to put the playhead and video Id would be the request body. You'd need to get the video Id from some other meta-data based service.

Compare and Swap

If you need to update a resource that could potentially be getting updated by multiple users at the same time, a simple method would be to "Compare and Swap". If at first you must read from an endpoint to get it's "compare" value, then how would you include it along with it's "swap" value in the request body?

Design/Architecture
Hardly ever do entire request bodies comprise of a singular response attribute. In fact, if this were the case, one could argue that it's almost certainly flawed API Design. If an entire request body is to be sourced from a response body, why wouldn't the original operation that returned said response not just make the request on the client's behalf? The current implementation of having: responseBody encourages an anti pattern, and goes against modern paradigms. Should a developer who doesn't know better try to design an API completely using OAS, they might be mislead.
The Future and Beyond
The OAS and what it aims to do are truly something great. Using OAS it's possible to document web request for both the human and machine. One of the last things missing is the ability to further describe the relationships each operation might play into another. Should this "last mile" problem be solved, developers integrating with API's might not ever need to even write a line of code nor converse with it's maintainers.
@darrelmiller, @whitlockjc, @earth2marsh, @MikeRalphson, @webron, @usarid, Please do consider/reconsider this enhancement during your next TSC.

Absolutlly agree with the idea, as process are incremental:
a) Base Services are built first (returing IDs, e.g.: a BankAccounId)
b) Extended Services are build later (e.b.: a Payment using the BankAccount)
=> Forward referencing adds unnecessary complexity to common feature.
=> Backward linking solves this problem in a very elegant way.
Nice to have:

If implicit referencing with unique parameter names could be a lean solurtion, if the operaton->operatation flow is easily defined.

Would be great if Links on Objects would be possible forward and backwar:

https://github.com/OAI/OpenAPI-Specification/issues/3228


Feature/problem0005

Codecov Report

Merging #16 (7a94fa2) into main (9e2397f) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #16   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines          329       331    +2
=========================================
+ Hits           329       331    +2

Impacted Files
Coverage Δ

src/helpers/divisors.py
100.00% <100.00%> (ø)

src/helpers/divisors_test.py
100.00% <100.00%> (ø)

src/problem0005_alt.py
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


There are more typos

didnt
erorr
exptect
furhter
lexicogrpahic
opertion
purproses
revesed
wouldnt

in the following files:
decoder_v1_test.go
docs/format.md
encoder_v1.go
encoder_v1_test.go
fst.go
fst_iterator.go
fst_iterator_test.go
vellum.go
vellum_test.go

and a missing word in docs/format.md: This *** us to get an early start on I/O
Aside: funnily enough, just yesterday I wrote my own implementation of DAWG/MA-FSA, which allowed me to save over 3 000 000 unicode words with associated part-of-speech tags to just 1.5Mb on disk (4 bytes per edge). With this implementation (without tuning) I get 14Mb.

Thanks for reporting the typos.
The numbers you cite are an interesting data point.  My guess is that if we're 10x larger, it's not just the size of the edges, but also the number of them.  Was your implementation fully minimal?  Or also using a fixed-size registry?

There's nothing about any registry in the docs, as far as I can see. No, my implementation uses nothing of the kind and (I believe) contains minimal number of nodes/edges. I can't tell how many nodes or edges there are in the vellum case (and compare the numbers), because vellum doesn't provide interface for it.

Ah yeah we're definitely not building a minimal FSA, we wanted to be able to easily put a bound on the memory used during the FSA construction.  So, we only remember a fixed number of states once they're serialized.  This means we later miss opportunities for reuse, but in our case thats a tradeoff we'll take.  This aspect of the approach is described in the "construction in practice" section of this blog: http://blog.burntsushi.net/transducers/

I see. Thanks for the clarification.

@opennota by any chance is the dataset you're working with open?

@mschoch Yes,
http://opencorpora.org/?page=downloads
http://opencorpora.org/files/export/dict/dict.opcorpora.xml.bz2 (XML)
http://opencorpora.org/files/export/dict/dict.opcorpora.txt.bz2 (Plain text)

Awesome, thanks.


Do you consider to upgrade AVIF version?

Now AVIF lib is 0.10.0 and it's newer than current 0.5.4.
So do you have any plan to upgrade it? or maybe is it unnecessary?

It's on my TODO list 😀

I am not sure but seems to me that #1207 is related


Check elevated access

Hello,
first thanks for your nice script.
Why do you make this check in the function IsAdmin?
if ($Windows2008R2  -and !$IsAdmin)
This condition can never be true because you set this variables
$script:Windows2003 = $false
$script:Windows2008 = $false
$script:Windows2008R2 = $false
$script:Windows2012 = $false
$script:Windows2012R2 = $false
$script:Windows2016 = $false
$script:Windows2019 = $false

Or do i miss something?
best wishes

Total Code rewrite
New version is based on PowerShell modules and doesn't check for isadmin any more


Add retry & backoff strategy to late initialization config

As part of feedback on PR #849 , Add retry-backoff strategy for late initialization of server side defaults.

/remove-lifecycle rotten

/lifecycle frozen


Fixing the quoting issue with the authentication message

The current authentication messages are show with surrounding quotes.  This PR unquotes the message, that is passed into the release-controller, before displaying it on the screen.

/assign @smarterclayton


TextField not allowing text input

Tested on Android 13 and 12 and Windows in my own project and in new project created from the template and I can't get TextField to show input. Sometimes I can get focus of it and type, but the text won't render, most times I can't get it to focus and bring up a keyboard at all.

Issue resolved after updating to latest Visual Studio. I think I was behind on sdk versions.


add cutline helper

closes #218
cc @purijs @kylebarron
from rio_tiler.io import COGReader
from rio_tiler.utils import create_cutline
from rasterio.features import bounds as featureBounds
 feat =     {
    "type": "Feature",
    "properties": {},
    "geometry": {
    "type": "Polygon",
    "coordinates": [
        [
        [-52.6025390625, 73.86761239709705],
        [-52.6025390625, 73.59679245247814],
        [-51.591796875, 73.60299628304274],
        [-51.591796875, 73.90420357134279],
        [-52.4267578125, 74.0437225981325],
        [-52.6025390625, 73.86761239709705]
        ]
    ]
    }
}
 # Get BBOX of the polygon
bbox = featureBounds(feat)
 # Use COGReader to open and read the dataset
with COGReader(COGEO) as cog:
    # Create WTT Cutline
    cutline = create_cutline(cog.dataset, feat, geometry_crs="epsg:4326")
     # Read part of the data (bbox) and use the cutline to mask the data
    data, mask = cog.part(bbox, warp_vrt_option={'cutline': cutline})

will update this after #222 get merged


shared/logging: Support multiple custom handlers

This adds support for multiple custom handlers.
For the upcoming warnings API, this is a simple way of receiving
any warnings/errors.
Signed-off-by: Thomas Hipp<EMAIL_ADDRESS>

jenkins: test this please

I'll comment in the spec directly with more details, but I don't think we actually need this for the warnings API.
We don't want to capture all warn/error messages and dump them in the warnings API as they are, instead, that API is meant to have much better thought through entries, be linked to specific entities and a way to clear themselves when the issue is resolved.


CEO-443 Add a dropdown to select between file upload/manual selection for Boundary Coordinates

Purpose

Make use of dropdown/selector to choose between input methods of plot boundary, depending on the choice the map can be active (when needed) or non-active with color cues and moving its instruction text position to bottom.
Related Issues
Closes CEO-###
Submission Checklist

[x] Included Jira issue in the PR title (e.g. CEO-### <title>)
[x] Code passes linter rules (npm run eslint/clj-kondo --lint src)

Testing

In project Wizard, in Plot Design
Select: Upload Boundary File
The map section should change Color, loses interactivity, instruction message disappears
Select: Input Boundary Coordinates
The map section should become normal, active with instruction message

Screenshots

src/js/project/CreateProjectWizard.js
110/517, dont name state and class methods the same.
src/js/project/PlotDesign.js
240, renderAOISelector is not being used
247, Dont create a component inside another component.  If this needs to be a component move it outside. If you want it to stay inside PlotDesign, move state to the PlotDesign level, and use a regular ES6 function. renderAOISelector
248, your state variables are a bit vague.  Please use more specific names.
267, Use padding or margin instead of br.

src/js/project/CreateProjectWizard.js
56, use the same name for props and the value passed.
110, This is a nice and descriptive var.  I think you can get away with isHelpInactive
517, your function does not deactivate help component, it sets a value to isHelpInactive. Use setIsHelpInactive


Separate a tinychain.async Python package out of the tinychain Python package

When this is complete, it will be possible to install and use the tinychain Python package without installing e.g. asyncio or asynchttp, but still possible to use the tinychain.host.asynchronous module by installing the tinychain.async package. This can be tested using two virtual environmentss for Python.


Installing problem on Ubuntu 22.04.1 LTS

Hi there, and happy new year :)
I try to install the newest package on a fresh ubuntu server. But the log gives me this :
Unable to apply some actions, aborting
Couldn't find any package whose name is "php7.4", but there are 1 packages which contain "php7.4" in their name:
libapache2-mod-php7.4
Is there any way around this, i am not hardcore coder, so hope it can be a simple fix maybe :)
Regards Brian.

sudo apt update && sudo apt upgrade
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php7.4

Cool, and if i did some google better, i could have fund it, sorry for that.
But thanks for the answer :)


Add target format to texture_get_data; speed up thumbnailing

Currently, saving scenes in some configurations is very slow, mainly due to the incredibly slow scene thumbnailing.
For example, on an iMac 5K, during saving a scene, getting the texture and converting it to RGB alone (without resizing or saving) alone takes 800ms for each save, the main hit being Image::convert (from half-floats to bytes), which is really slow.
This PR thus proposes to allow RasterizerStorage::texture_get_data() to take an additional image format parameter to specify an return image format. If Image::FORMAT_ANY is passed (the default) the current behavior happens, i.e. the texture is returned in its native format (i.e. nothing should break due to this change). However, if a specific target format is passed, RasterizerStorage::texture_get_data() can optimize the color conversion (e.g. use the OpenGL driver to do it) or use Image::convert() internally.
For thumbnailing, Image::FORMAT_RGB can be passed, which causes OpenGL to do the conversion. On the iMac 5K above, with this PR, extracting the texture as RGB then only takes 350ms.
EDIT Note that of the remaining 350ms, 95% is due to https://github.com/godotengine/godot/pull/14323, so the effective remaining time for color conversion is negligible.

Here are some visuals:
Current master:

And with this PR and #14323 in place:

will check this after 3.0 is out, currently we are in feature freeze and in for fixes to actual bugs, need to see the problem more in depth before commenting on what to do with it

Re-checking this today, I found out I messed up my builds. The gifs above are bogus and show a non-optimized build. The impact of Image::convert in an optimized build is only about 10%.


Handling Broker with "partially" invalid classes/plans

Currently, in case anything goes wrong with class/plan create/update, we give up and abandon classes and plans in a partially synced state.
For example, see plans for loop and classes for loop.
Let's say we have P valid plans, C-1 valid classes and 1 service class with a conflicting name. In that case we have a number of possible outcomes (depending on the order of the services returned by the broker):

0 classes and 0 plans created
X classes and P plans created (0 < x < C)

We will also have a broker with error condition.
In that case, if X > 0, we will be able to create instances and bindings for service classes with plans which were synced before the corresponding for loop has encountered a conflicting class. But for the valid classes and plans which were listed after the conflicting class in the broker result, there will be no registered classes and plans.
Shouldn't we skip invalid classes and plans (or mark them with error state) and continue processing valid ones, instead of stopping processing the catalog immediately? In the end of processing, we can collect all encountered errors and report about them in the broker status.

Note that in https://github.com/kubernetes-incubator/service-catalog/pull/1459 I've fixed the order (create classes first, and plans after that), but the issue remains: currently the outcome of syncing a partially valid catalog is non-deteministic, and the user can't create instance for valid plans if there is just one conflicting plan/class in the broker.

I have wondered to myself about the same thing.  It's arguable that we should just skip invalid services/plans and set the error condition on the broker (which is basically just used to communicate to the user that something went wrong).

I don't think this has to block 0.1.0, though.

The alternative option (easy to implement for now) is to prevent usage of classes and plans for the broker without Ready: true status. At least it will make a behavior consistent: you need to fix the entire catalog to use any offerings provided by the broker.

@nilebox yeah, i have also thought of that one as well.  I do wonder what CF does.
It's worth thinking about what different scenarios are here.  For example, it probably makes sense to treat a situation where the broker sends invalid json differently from one where the broker has 5 services and one of those services has no plans (which is an error).


Fix shell check warnings

Description of changes

SC2002 -- piping cat through two grep calls may instead be handled all by one grep call within both the GitHub Action configuration, and build script.

Note; I recognize above described change is totally a micro optimization, but it also reduces shellcheck noise and shouldn't break anything

SC2086 -- double quoting prevents unintentional word splitting were one to call script with TIMESTAMP defined, ex TIMESTAMP="questionable idea" ./bin/build.sh

Related documentation

https://www.shellcheck.net/wiki/SC2002
https://www.shellcheck.net/wiki/SC2086

GitHub Action

https://github.com/S0AndS0/Adv360-Pro-ZMK/actions/runs/6436664594

LGTM, Thanks for this!


Add tests for mean and ev

Not sure how this can work for JS now...

Forgot to run the tests.

There were go now the tests can be fixed

@jliszka ok it works! Ready to squash and merge. 👍


Do not use SKNode as target parameter

In action method, SKNode target parameter is used to retrieve node property.  Thus chain actions cannot be done because SKNode properties change along actions.
In place, remove this parameter and replace it by the needed property. For example, for scaleToWithNode, as the needed property is scale use initialScale:CGFloat as parameter.

Again this is as is from the Obj C port, but I completely agree. I have left the old methods in for legacy for now, but have added a new method for each animation type , which requires from and to parameters rather than extracting the value from the node. Thanks for your suggestions!
https://github.com/craiggrummitt/SpriteKitEasingSwift/commit/1586a754a0fa000c7bf0f990127a735044b0286a

Ok, great!


Merge mode layout not displaying correctly

In merge mode, the layout seems broken. Tested this in SAP GUI and Eclipse.

@patvo can you try again with the latest build?

@christianguenter2

Works like a charm. Thanks. 😉


Build issues in Docker Container

Hi,
Thank you for putting the work in on this fork. I was trying to build it yesterday in the AMD provided pytorch ROCm docker image and I must be doing something wrong. All of the building seems to work (with some warnings, but no errors), and the installation doesn't seem to have any errors.
Hardware information:
ROCk module version 6.7.0 is loaded
=====================
HSA System Attributes
=====================
Runtime Version:         1.13
Runtime Ext Version:     1.4
System Timestamp Freq.:  1000.000000MHz
Sig. Max Wait Duration:<PHONE_NUMBER>3709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model:           LARGE
System Endianness:       LITTLE
Mwaitx:                  DISABLED
DMAbuf Support:          YES

==========
HSA Agents
==========
*******
Agent 1
*******
  Name:                    AMD Ryzen 5 PRO 5650GE with Radeon Graphics
  Uuid:                    CPU-XX
  Marketing Name:          AMD Ryzen 5 PRO 5650GE with Radeon Graphics
  Vendor Name:             CPU
  Feature:                 None specified
  Profile:                 FULL_PROFILE
  Float Round Mode:        NEAR
  Max Queue Number:        0(0x0)
  Queue Min Size:          0(0x0)
  Queue Max Size:          0(0x0)
  Queue Type:              MULTI
  Node:                    0
  Device Type:             CPU
  Cache Info:
    L1:                      32768(0x8000) KB
  Chip ID:                 0(0x0)
  ASIC Revision:           0(0x0)
  Cacheline Size:          64(0x40)
  Max Clock Freq. (MHz):   3400
  BDFID:                   0
  Internal Node ID:        0
  Compute Unit:            12
  SIMDs per CU:            0
  Shader Engines:          0
  Shader Arrs. per Eng.:   0
  WatchPts on Addr. Ranges:1
  Features:                None
  Pool Info:
    Pool 1
      Segment:                 GLOBAL; FLAGS: FINE GRAINED
      Size:                    49198864(0x2eeb710) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Recommended Granule:4KB
      Alloc Alignment:         4KB
      Accessible by all:       TRUE
    Pool 2
      Segment:                 GLOBAL; FLAGS: KERNARG, FINE GRAINED
      Size:                    49198864(0x2eeb710) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Recommended Granule:4KB
      Alloc Alignment:         4KB
      Accessible by all:       TRUE
    Pool 3
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED
      Size:                    49198864(0x2eeb710) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Recommended Granule:4KB
      Alloc Alignment:         4KB
      Accessible by all:       TRUE
  ISA Info:
*******
Agent 2
*******
  Name:                    gfx90c
  Uuid:                    GPU-XX
  Marketing Name:          AMD Radeon Graphics
  Vendor Name:             AMD
  Feature:                 KERNEL_DISPATCH
  Profile:                 BASE_PROFILE
  Float Round Mode:        NEAR
  Max Queue Number:        128(0x80)
  Queue Min Size:          64(0x40)
  Queue Max Size:          131072(0x20000)
  Queue Type:              MULTI
  Node:                    1
  Device Type:             GPU
  Cache Info:
    L1:                      16(0x10) KB
    L2:                      1024(0x400) KB
  Chip ID:                 5688(0x1638)
  ASIC Revision:           0(0x0)
  Cacheline Size:          64(0x40)
  Max Clock Freq. (MHz):   1900
  BDFID:                   1024
  Internal Node ID:        1
  Compute Unit:            7
  SIMDs per CU:            4
  Shader Engines:          1
  Shader Arrs. per Eng.:   1
  WatchPts on Addr. Ranges:4
  Coherent Host Access:    FALSE
  Features:                KERNEL_DISPATCH
  Fast F16 Operation:      TRUE
  Wavefront Size:          64(0x40)
  Workgroup Max Size:      1024(0x400)
  Workgroup Max Size per Dimension:
    x                        1024(0x400)
    y                        1024(0x400)
    z                        1024(0x400)
  Max Waves Per CU:        40(0x28)
  Max Work-item Per CU:    2560(0xa00)
  Grid Max Size:<PHONE_NUMBER>(0xffffffff)
  Grid Max Size per Dimension:
    x<PHONE_NUMBER>(0xffffffff)
    y<PHONE_NUMBER>(0xffffffff)
    z<PHONE_NUMBER>(0xffffffff)
  Max fbarriers/Workgrp:   32
  Packet Processor uCode:: 471
  SDMA engine uCode::      40
  IOMMU Support::          None
  Pool Info:
    Pool 1
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED
      Size:                    16777216(0x1000000) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Recommended Granule:2048KB
      Alloc Alignment:         4KB
      Accessible by all:       FALSE
    Pool 2
      Segment:                 GLOBAL; FLAGS: EXTENDED FINE GRAINED
      Size:                    16777216(0x1000000) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Recommended Granule:2048KB
      Alloc Alignment:         4KB
      Accessible by all:       FALSE
    Pool 3
      Segment:                 GROUP
      Size:                    64(0x40) KB
      Allocatable:             FALSE
      Alloc Granule:           0KB
      Alloc Recommended Granule:0KB
      Alloc Alignment:         0KB
      Accessible by all:       FALSE
  ISA Info:
    ISA 1
      Name:                    amdgcn-amd-amdhsa--gfx90c:xnack-
      Machine Models:          HSA_MACHINE_MODEL_LARGE
      Profiles:                HSA_PROFILE_BASE
      Default Rounding Mode:   NEAR
      Default Rounding Mode:   NEAR
      Fast f16:                TRUE
      Workgroup Max Size:      1024(0x400)
      Workgroup Max Size per Dimension:
        x                        1024(0x400)
        y                        1024(0x400)
        z                        1024(0x400)
      Grid Max Size:<PHONE_NUMBER>(0xffffffff)
      Grid Max Size per Dimension:
        x<PHONE_NUMBER>(0xffffffff)
        y<PHONE_NUMBER>(0xffffffff)
        z<PHONE_NUMBER>(0xffffffff)
      FBarrier Max Size:       32
      ```

Procedure:
Here is my procedure so far:
Dockerfile:
RUN pip install -U pip && pip install wyoming==1.6.0 faster-whisper==1.0.3 tokenizers==0.13.*

# Scipts for wyoming
COPY src /src
WORKDIR /src

RUN git clone https://github.com/arlo-phoenix/CTranslate2-rocm.git --recurse-submodules

#Install Python 3.9
RUN wget -O Python_3.9.19.tgz https://www.python.org/ftp/python/3.9.19/Python-3.9.19.tgz
RUN tar -xf Python_3.9.19.tgz

WORKDIR ..

ENTRYPOINT ["tail", "-f", "/dev/null"]

This gets me ready with the repository cloned and the installer for Python 3.9 (which appears to be needed for the build process?).
Launch the container with docker compose:
version: "3"

services:
  whisper:
    container_name: whisper-2
    restart: unless-stopped
    build:
      context: .
    volumes:
      - ./data:/data
    ports:
      - "10301:10300"
    devices:
      - "/dev/dri"
      - "/dev/kfd"
    environment:
      - HSA_OVERRIDE_GFX_VERSION=9.0.0
      - PYTORCH_ROCM_ARCH=gfx90c

Interactive terminal on the container:
 docker exec -it whisper-2 bash
Install Python 3.9:
cd Python-3.9.0
./configure
sudo make altinstall

Create Conda Env:
conda init
conda create --name py_3.9 python=3.9
conda activate py_3.9

Then I follow your procedure.
Issue
Running the first test after building and installing the wheel file results in:
CTranslate2-rocm# ./build/tests/ctranslate2_test ./tests/data/ --gtest_filter=*CUDA*:-*bfloat16*
./build/tests/ctranslate2_test: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory

Followed up with the linker not being able to open anything:
GNU ld (GNU Binutils for Ubuntu) 2.38
  Supported emulations:
   elf_x86_64
   elf32_x86_64
   elf_i386
   elf_iamcu
   elf_l1om
   elf_k1om
   i386pep
   i386pe
using internal linker script:
==================================================
/* Script for -z combreloc -z separate-code */
/* Copyright (C) 2014-2022 Free Software Foundation, Inc.
   Copying and distribution of this script, with or without modification,
   are permitted in any medium without royalty provided the copyright
   notice and this notice are preserved.  */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
              "elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib");
SECTIONS
{
  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
  .interp         : { *(.interp) }
  .note.gnu.build-id  : { *(.note.gnu.build-id) }
  .hash           : { *(.hash) }
  .gnu.hash       : { *(.gnu.hash) }
  .dynsym         : { *(.dynsym) }
  .dynstr         : { *(.dynstr) }
  .gnu.version    : { *(.gnu.version) }
  .gnu.version_d  : { *(.gnu.version_d) }
  .gnu.version_r  : { *(.gnu.version_r) }
  .rela.dyn       :
    {
      *(.rela.init)
      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
      *(.rela.fini)
      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
      *(.rela.ctors)
      *(.rela.dtors)
      *(.rela.got)
      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
      *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
      *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
      *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
      *(.rela.ifunc)
    }
  .rela.plt       :
    {
      *(.rela.plt)
      PROVIDE_HIDDEN (__rela_iplt_start = .);
      *(.rela.iplt)
      PROVIDE_HIDDEN (__rela_iplt_end = .);
    }
  .relr.dyn : { *(.relr.dyn) }
  . = ALIGN(CONSTANT (MAXPAGESIZE));
  .init           :
  {
    KEEP (*(SORT_NONE(.init)))
  }
  .plt            : { *(.plt) *(.iplt) }
.plt.got        : { *(.plt.got) }
.plt.sec        : { *(.plt.sec) }
  .text           :
  {
    *(.text.unlikely .text.*_unlikely .text.unlikely.*)
    *(.text.exit .text.exit.*)
    *(.text.startup .text.startup.*)
    *(.text.hot .text.hot.*)
    *(SORT(.text.sorted.*))
    *(.text .stub .text.* .gnu.linkonce.t.*)
    /* .gnu.warning sections are handled specially by elf.em.  */
    *(.gnu.warning)
  }
  .fini           :
  {
    KEEP (*(SORT_NONE(.fini)))
  }
  PROVIDE (__etext = .);
  PROVIDE (_etext = .);
  PROVIDE (etext = .);
  . = ALIGN(CONSTANT (MAXPAGESIZE));
  /* Adjust the address for the rodata segment.  We want to adjust up to
     the same address within the page on the next page up.  */
  . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));
  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
  .rodata1        : { *(.rodata1) }
  .eh_frame_hdr   : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }
  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }
  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
  .gnu_extab   : ONLY_IF_RO { *(.gnu_extab*) }
  /* These sections are generated by the Sun/Oracle C++ compiler.  */
  .exception_ranges   : ONLY_IF_RO { *(.exception_ranges*) }
  /* Adjust the address for the data segment.  We want to adjust up to
     the same address within the page on the next page up.  */
  . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
  /* Exception handling  */
  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) }
  .gnu_extab      : ONLY_IF_RW { *(.gnu_extab) }
  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
  .exception_ranges   : ONLY_IF_RW { *(.exception_ranges*) }
  /* Thread Local Storage sections  */
  .tdata          :
   {
     PROVIDE_HIDDEN (__tdata_start = .);
     *(.tdata .tdata.* .gnu.linkonce.td.*)
   }
  .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
  .preinit_array    :
  {
    PROVIDE_HIDDEN (__preinit_array_start = .);
    KEEP (*(.preinit_array))
    PROVIDE_HIDDEN (__preinit_array_end = .);
  }
  .init_array    :
  {
    PROVIDE_HIDDEN (__init_array_start = .);
    KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
    KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
    PROVIDE_HIDDEN (__init_array_end = .);
  }
  .fini_array    :
  {
    PROVIDE_HIDDEN (__fini_array_start = .);
    KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
    KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
    PROVIDE_HIDDEN (__fini_array_end = .);
  }
  .ctors          :
  {
    /* gcc uses crtbegin.o to find the start of
       the constructors, so we make sure it is
       first.  Because this is a wildcard, it
       doesn't matter if the user does not
       actually link against crtbegin.o; the
       linker won't look for a file to match a
       wildcard.  The wildcard also means that it
       doesn't matter which directory crtbegin.o
       is in.  */
    KEEP (*crtbegin.o(.ctors))
    KEEP (*crtbegin?.o(.ctors))
    /* We don't want to include the .ctor section from
       the crtend.o file until after the sorted ctors.
       The .ctor section from the crtend file contains the
       end of ctors marker and it must be last */
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
    KEEP (*(SORT(.ctors.*)))
    KEEP (*(.ctors))
  }
  .dtors          :
  {
    KEEP (*crtbegin.o(.dtors))
    KEEP (*crtbegin?.o(.dtors))
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
    KEEP (*(SORT(.dtors.*)))
    KEEP (*(.dtors))
  }
  .jcr            : { KEEP (*(.jcr)) }
  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
  .dynamic        : { *(.dynamic) }
  .got            : { *(.got) *(.igot) }
  . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
  .got.plt        : { *(.got.plt) *(.igot.plt) }
  .data           :
  {
    *(.data .data.* .gnu.linkonce.d.*)
    SORT(CONSTRUCTORS)
  }
  .data1          : { *(.data1) }
  _edata = .; PROVIDE (edata = .);
  . = .;
  __bss_start = .;
  .bss            :
  {
   *(.dynbss)
   *(.bss .bss.* .gnu.linkonce.b.*)
   *(COMMON)
   /* Align here to ensure that the .bss section occupies space up to
      _end.  Align after .bss to ensure correct alignment even if the
      .bss section disappears because there are no input sections.
      FIXME: Why do we need it? When there is no .bss section, we do not
      pad the .data section.  */
   . = ALIGN(. != 0 ? 64 / 8 : 1);
  }
  .lbss   :
  {
    *(.dynlbss)
    *(.lbss .lbss.* .gnu.linkonce.lb.*)
    *(LARGE_COMMON)
  }
  . = ALIGN(64 / 8);
  . = SEGMENT_START("ldata-segment", .);
  .lrodata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
  {
    *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
  }
  .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
  {
    *(.ldata .ldata.* .gnu.linkonce.l.*)
    . = ALIGN(. != 0 ? 64 / 8 : 1);
  }
  . = ALIGN(64 / 8);
  _end = .; PROVIDE (end = .);
  . = DATA_SEGMENT_END (.);
  /* Stabs debugging sections.  */
  .stab          0 : { *(.stab) }
  .stabstr       0 : { *(.stabstr) }
  .stab.excl     0 : { *(.stab.excl) }
  .stab.exclstr  0 : { *(.stab.exclstr) }
  .stab.index    0 : { *(.stab.index) }
  .stab.indexstr 0 : { *(.stab.indexstr) }
  .comment       0 : { *(.comment) }
  .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1.  */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }
  /* GNU DWARF 1 extensions.  */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2.  */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  /* DWARF 2.  */
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }
  /* SGI/MIPS DWARF 2 extensions.  */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }
  /* DWARF 3.  */
  .debug_pubtypes 0 : { *(.debug_pubtypes) }
  .debug_ranges   0 : { *(.debug_ranges) }
  /* DWARF 5.  */
  .debug_addr     0 : { *(.debug_addr) }
  .debug_line_str 0 : { *(.debug_line_str) }
  .debug_loclists 0 : { *(.debug_loclists) }
  .debug_macro    0 : { *(.debug_macro) }
  .debug_names    0 : { *(.debug_names) }
  .debug_rnglists 0 : { *(.debug_rnglists) }
  .debug_str_offsets 0 : { *(.debug_str_offsets) }
  .debug_sup      0 : { *(.debug_sup) }
  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}

==================================================
ld: mode elf_x86_64
attempt to open /usr/local/lib/x86_64-linux-gnu/libctranslate2.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libctranslate2.a failed
attempt to open /lib/x86_64-linux-gnu/libctranslate2.so failed
attempt to open /lib/x86_64-linux-gnu/libctranslate2.a failed
attempt to open /usr/lib/x86_64-linux-gnu/libctranslate2.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libctranslate2.a failed
attempt to open /usr/lib/x86_64-linux-gnu64/libctranslate2.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/libctranslate2.a failed
attempt to open /usr/local/lib64/libctranslate2.so failed
attempt to open /usr/local/lib64/libctranslate2.a failed
attempt to open /lib64/libctranslate2.so failed
attempt to open /lib64/libctranslate2.a failed
attempt to open /usr/lib64/libctranslate2.so failed
attempt to open /usr/lib64/libctranslate2.a failed
attempt to open /usr/local/lib/libctranslate2.so succeeded
/usr/local/lib/libctranslate2.so
libhiprand.so.1 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libhiprand.so.1 failed
found libhiprand.so.1 at /opt/rocm/lib/libhiprand.so.1
libhipblas.so.2 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libhipblas.so.2 failed
found libhipblas.so.2 at /opt/rocm/lib/libhipblas.so.2
libMIOpen.so.1 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libMIOpen.so.1 failed
found libMIOpen.so.1 at /opt/rocm/lib/libMIOpen.so.1
libiomp5.so needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libiomp5.so failed
attempt to open /opt/rocm/lib/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open libiomp5.so failed
attempt to open libiomp5.so failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libiomp5.so failed
attempt to open /opt/rocm-6.1.0/lib/libiomp5.so failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib32/libiomp5.so failed
attempt to open /usr/lib32/libiomp5.so failed
attempt to open /libx32/libiomp5.so failed
attempt to open /usr/libx32/libiomp5.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/libiomp5.so failed
attempt to open /usr/local/lib64/libiomp5.so failed
attempt to open /lib64/libiomp5.so failed
attempt to open /usr/lib64/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open /lib/libiomp5.so failed
attempt to open /usr/lib/libiomp5.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libiomp5.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libiomp5.so failed
attempt to open /opt/ompi/lib/libiomp5.so failed
attempt to open /opt/rocm/lib/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open libiomp5.so failed
attempt to open libiomp5.so failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libiomp5.so failed
attempt to open /opt/rocm-6.1.0/lib/libiomp5.so failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib32/libiomp5.so failed
attempt to open /usr/lib32/libiomp5.so failed
attempt to open /libx32/libiomp5.so failed
attempt to open /usr/libx32/libiomp5.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libiomp5.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/libiomp5.so failed
attempt to open /usr/local/lib64/libiomp5.so failed
attempt to open /lib64/libiomp5.so failed
attempt to open /usr/lib64/libiomp5.so failed
attempt to open /usr/local/lib/libiomp5.so failed
attempt to open /lib/libiomp5.so failed
attempt to open /usr/lib/libiomp5.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libiomp5.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libiomp5.so failed
ld: warning: libiomp5.so, needed by /usr/local/lib/libctranslate2.so, not found (try using -rpath or -rpath-link)
libamdhip64.so.6 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libamdhip64.so.6 failed
found libamdhip64.so.6 at /opt/rocm/lib/libamdhip64.so.6
libstdc++.so.6 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libstdc++.so.6 failed
attempt to open /opt/rocm/lib/libstdc++.so.6 failed
attempt to open /usr/local/lib/libstdc++.so.6 failed
attempt to open libstdc++.so.6 failed
attempt to open libstdc++.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libstdc++.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/libstdc++.so.6 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libstdc++.so.6 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libstdc++.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libstdc++.so.6 failed
attempt to open /usr/local/lib/libstdc++.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libstdc++.so.6 failed
found libstdc++.so.6 at /lib/x86_64-linux-gnu/libstdc++.so.6
libm.so.6 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libm.so.6 failed
attempt to open /opt/rocm/lib/libm.so.6 failed
attempt to open /usr/local/lib/libm.so.6 failed
attempt to open libm.so.6 failed
attempt to open libm.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libm.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/libm.so.6 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libm.so.6 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libm.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libm.so.6 failed
attempt to open /usr/local/lib/libm.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libm.so.6 failed
found libm.so.6 at /lib/x86_64-linux-gnu/libm.so.6
libgcc_s.so.1 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libgcc_s.so.1 failed
attempt to open /opt/rocm/lib/libgcc_s.so.1 failed
attempt to open /usr/local/lib/libgcc_s.so.1 failed
attempt to open libgcc_s.so.1 failed
attempt to open libgcc_s.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libgcc_s.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libgcc_s.so.1 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libgcc_s.so.1 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libgcc_s.so.1 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libgcc_s.so.1 failed
attempt to open /usr/local/lib/libgcc_s.so.1 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libgcc_s.so.1 failed
found libgcc_s.so.1 at /lib/x86_64-linux-gnu/libgcc_s.so.1
libc.so.6 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/libc.so.6 failed
attempt to open /opt/rocm/lib/libc.so.6 failed
attempt to open /usr/local/lib/libc.so.6 failed
attempt to open libc.so.6 failed
attempt to open libc.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libc.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/libc.so.6 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libc.so.6 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libc.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libc.so.6 failed
attempt to open /usr/local/lib/libc.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libc.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libc.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu64/libc.so.6 failed
attempt to open /usr/local/lib64/libc.so.6 failed
attempt to open /lib64/libc.so.6 failed
attempt to open /usr/lib64/libc.so.6 failed
attempt to open /usr/local/lib/libc.so.6 failed
attempt to open /lib/libc.so.6 failed
attempt to open /usr/lib/libc.so.6 failed
attempt to open /usr/x86_64-linux-gnu/lib64/libc.so.6 failed
attempt to open /usr/x86_64-linux-gnu/lib/libc.so.6 failed
attempt to open /opt/ompi/lib/libc.so.6 failed
attempt to open /opt/rocm/lib/libc.so.6 failed
attempt to open /usr/local/lib/libc.so.6 failed
attempt to open libc.so.6 failed
attempt to open libc.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/libc.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/libc.so.6 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libc.so.6 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libc.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libc.so.6 failed
attempt to open /usr/local/lib/libc.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libc.so.6 failed
found libc.so.6 at /lib/x86_64-linux-gnu/libc.so.6
ld-linux-x86-64.so.2 needed by /usr/local/lib/libctranslate2.so
attempt to open /opt/ompi/lib/ld-linux-x86-64.so.2 failed
attempt to open /opt/rocm/lib/ld-linux-x86-64.so.2 failed
attempt to open /usr/local/lib/ld-linux-x86-64.so.2 failed
attempt to open ld-linux-x86-64.so.2 failed
attempt to open ld-linux-x86-64.so.2 failed
attempt to open /opt/rocm-6.1.0/lib/llvm/bin/../../../lib/ld-linux-x86-64.so.2 failed
attempt to open /opt/rocm-6.1.0/lib/ld-linux-x86-64.so.2 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/ld-linux-x86-64.so.2 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/ld-linux-x86-64.so.2 failed
attempt to open /usr/local/lib/ld-linux-x86-64.so.2 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 failed
found ld-linux-x86-64.so.2 at /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
librocrand.so.1 needed by /opt/rocm/lib/libhiprand.so.1
attempt to open /opt/ompi/lib/librocrand.so.1 failed
found librocrand.so.1 at /opt/rocm/lib/librocrand.so.1
librocsolver.so.0 needed by /opt/rocm/lib/libhipblas.so.2
attempt to open /opt/ompi/lib/librocsolver.so.0 failed
found librocsolver.so.0 at /opt/rocm/lib/librocsolver.so.0
librocblas.so.4 needed by /opt/rocm/lib/libhipblas.so.2
attempt to open /opt/ompi/lib/librocblas.so.4 failed
found librocblas.so.4 at /opt/rocm/lib/librocblas.so.4
libzstd.so.1 needed by /opt/rocm/lib/libMIOpen.so.1
attempt to open /opt/ompi/lib/libzstd.so.1 failed
attempt to open /opt/rocm/lib/libzstd.so.1 failed
attempt to open /usr/local/lib/libzstd.so.1 failed
attempt to open libzstd.so.1 failed
attempt to open /opt/rocm/lib/libzstd.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libzstd.so.1 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libzstd.so.1 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libzstd.so.1 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libzstd.so.1 failed
attempt to open /usr/local/lib/libzstd.so.1 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libzstd.so.1 failed
found libzstd.so.1 at /lib/x86_64-linux-gnu/libzstd.so.1
libhiprtc.so.6 needed by /opt/rocm/lib/libMIOpen.so.1
attempt to open /opt/ompi/lib/libhiprtc.so.6 failed
found libhiprtc.so.6 at /opt/rocm/lib/libhiprtc.so.6
libamd_comgr.so.2 needed by /opt/rocm/lib/libMIOpen.so.1
attempt to open /opt/ompi/lib/libamd_comgr.so.2 failed
found libamd_comgr.so.2 at /opt/rocm/lib/libamd_comgr.so.2
libroctx64.so.4 needed by /opt/rocm/lib/libMIOpen.so.1
attempt to open /opt/ompi/lib/libroctx64.so.4 failed
found libroctx64.so.4 at /opt/rocm/lib/libroctx64.so.4
libhsa-runtime64.so.1 needed by /opt/rocm/lib/libamdhip64.so.6
attempt to open /opt/ompi/lib/libhsa-runtime64.so.1 failed
found libhsa-runtime64.so.1 at /opt/rocm/lib/libhsa-runtime64.so.1
libnuma.so.1 needed by /opt/rocm/lib/libamdhip64.so.6
attempt to open /opt/ompi/lib/libnuma.so.1 failed
attempt to open /opt/rocm/lib/libnuma.so.1 failed
attempt to open /usr/local/lib/libnuma.so.1 failed
attempt to open libnuma.so.1 failed
attempt to open /opt/rocm/lib/libnuma.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libnuma.so.1 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libnuma.so.1 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libnuma.so.1 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libnuma.so.1 failed
attempt to open /usr/local/lib/libnuma.so.1 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libnuma.so.1 failed
found libnuma.so.1 at /lib/x86_64-linux-gnu/libnuma.so.1
librocsparse.so.1 needed by /opt/rocm/lib/librocsolver.so.0
attempt to open /opt/ompi/lib/librocsparse.so.1 failed
found librocsparse.so.1 at /opt/rocm/lib/librocsparse.so.1
libz.so.1 needed by /opt/rocm/lib/libamd_comgr.so.2
attempt to open /opt/ompi/lib/libz.so.1 failed
attempt to open /opt/rocm/lib/libz.so.1 failed
attempt to open /usr/local/lib/libz.so.1 failed
attempt to open libz.so.1 failed
attempt to open /opt/rocm/lib/libz.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libz.so.1 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libz.so.1 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libz.so.1 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libz.so.1 failed
attempt to open /usr/local/lib/libz.so.1 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libz.so.1 failed
found libz.so.1 at /lib/x86_64-linux-gnu/libz.so.1
libtinfo.so.6 needed by /opt/rocm/lib/libamd_comgr.so.2
attempt to open /opt/ompi/lib/libtinfo.so.6 failed
attempt to open /opt/rocm/lib/libtinfo.so.6 failed
attempt to open /usr/local/lib/libtinfo.so.6 failed
attempt to open libtinfo.so.6 failed
attempt to open /opt/rocm/lib/libtinfo.so.6 failed
attempt to open /opt/rocm-6.1.0/lib/libtinfo.so.6 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libtinfo.so.6 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libtinfo.so.6 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libtinfo.so.6 failed
attempt to open /usr/local/lib/libtinfo.so.6 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libtinfo.so.6 failed
found libtinfo.so.6 at /lib/x86_64-linux-gnu/libtinfo.so.6
libelf.so.1 needed by /opt/rocm/lib/libhsa-runtime64.so.1
attempt to open /opt/ompi/lib/libelf.so.1 failed
attempt to open /opt/rocm/lib/libelf.so.1 failed
attempt to open /usr/local/lib/libelf.so.1 failed
attempt to open libelf.so.1 failed
attempt to open /opt/rocm/lib/libelf.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libelf.so.1 failed
attempt to open /opt/amdgpu/lib/x86_64-linux-gnu/libelf.so.1 failed
attempt to open /opt/amdgpu/lib/i386-linux-gnu/libelf.so.1 failed
attempt to open /usr/lib/x86_64-linux-gnu/libfakeroot/libelf.so.1 failed
attempt to open /usr/local/lib/libelf.so.1 failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libelf.so.1 failed
found libelf.so.1 at /lib/x86_64-linux-gnu/libelf.so.1
librocprofiler-register.so.0 needed by /opt/rocm/lib/libhsa-runtime64.so.1
attempt to open /opt/ompi/lib/librocprofiler-register.so.0 failed
found librocprofiler-register.so.0 at /opt/rocm/lib/librocprofiler-register.so.0
libdrm.so.2 needed by /opt/rocm/lib/libhsa-runtime64.so.1
attempt to open /opt/ompi/lib/libdrm.so.2 failed
attempt to open /opt/rocm/lib/libdrm.so.2 failed
attempt to open /usr/local/lib/libdrm.so.2 failed
attempt to open libdrm.so.2 failed
attempt to open /opt/rocm/lib/libdrm.so.2 failed
attempt to open /opt/rocm-6.1.0/lib/libdrm.so.2 failed
found libdrm.so.2 at /opt/amdgpu/lib/x86_64-linux-gnu/libdrm.so.2
libdrm_amdgpu.so.1 needed by /opt/rocm/lib/libhsa-runtime64.so.1
attempt to open /opt/ompi/lib/libdrm_amdgpu.so.1 failed
attempt to open /opt/rocm/lib/libdrm_amdgpu.so.1 failed
attempt to open /usr/local/lib/libdrm_amdgpu.so.1 failed
attempt to open libdrm_amdgpu.so.1 failed
attempt to open /opt/rocm/lib/libdrm_amdgpu.so.1 failed
attempt to open /opt/rocm-6.1.0/lib/libdrm_amdgpu.so.1 failed
found libdrm_amdgpu.so.1 at /opt/amdgpu/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1
ld: warning: cannot find entry symbol _start; not setting start address
ld: /usr/local/lib/libctranslate2.so: undefined reference to `omp_set_num_threads@VERSION'
ld: /usr/local/lib/libctranslate2.so: undefined reference to `omp_in_parallel@VERSION'
ld: /usr/local/lib/libctranslate2.so: undefined reference to `omp_get_max_threads@VERSION'
ld: /usr/local/lib/libctranslate2.so: undefined reference to `omp_get_thread_num@VERSION'
ld: /usr/local/lib/libctranslate2.so: undefined reference to `omp_get_num_threads@VERSION'
ld: /usr/local/lib/libctranslate2.so: undefined reference to `__kmpc_fork_call@VERSION'
ld: link errors found, deleting executable `a.out'

I am clearly doing something wrong. Any ideas?

Are you actually using the docker image don't see any FROM in your docker file? But might be a cutout since you were able to run anything at all. The image should contain the py_3.9 environment and a full python install in the conda environment already so those steps shouldn't be necessary (and would actually break things). Those lower linker errors and the missing libiomp5 happened to me when I left out the export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/ on a system install this isn't necessary since sth like openmp-dev (apt-get, that's actually how I first got this running before I realized it was already in the conda env) is usually installed, but in the image it's just in the conda env. Lastly gfx90c might be too old to work with this (HSA_OVERRIDE helps, but I've seen people having issues with MIOpen because of composable_kernel, then again this doesn't require much from it and someone with RDNA 1 already got things running), but good luck.

I did miss the first line of the Docker file on the original post. That line is:
FROM rocm/pytorch:rocm6.1_ubuntu22.04_py3.10_pytorch_2.4

I assume because Python 3.9 is in your base image, that it is 20.04 when not specified. I will try it out with the generic rocm/pytorch.
I have quite a few projects working with the old architecture, but as you mentioned, it does complicate things. I am trying to get all of this running on an APU, so the compatibility is weak at best.  Thank you for the insight.

I was able to build in the following image setup:
FROM rocm/pytorch:rocm6.2_ubuntu20.04_py3.9_pytorch_release_2.3.0

RUN pip install -U pip && pip install wyoming==1.6.0 faster-whisper==1.0.3 tokenizers==0.13.*

COPY src /src

WORKDIR /src
RUN git clone https://github.com/arlo-phoenix/CTranslate2-rocm.git --recurse-submodules

ENTRYPOINT ["tail", "-f", "/dev/null"]

Now I have faster whisper running with the GPU on my 5650G APU. The performance is much better that before. Roughly 15x over the CPU using distil-small.en.
Thank you for putting this fork together!

Great that you got it working! Also good to know that my worries were unfounded, apparently the convolution part of MIOpen works on more devices than I thought.

There are still some inconsistencies between manually building per your instructions and the script that I wrote for my docker container. Usually it successfully and installs in the cmake section, but the python wheel build is more finicky. I am not sure what the issue is, so for now I have just pre-built the wheel file manually and include it in my source. I'd like to get the full installation working with automation, so that I can reliably limit the architectures built for, but I will figure that out after getting my full stack of services running with ROCm.


[Dropdown Item] Add icon prop to dropdown-item

Please make sure these boxes are checked before submitting your PR, thank you!

[x] Make sure you follow Element's contributing guide (中文 | English | Español).
[x] Make sure you are merging your commits to dev branch.
[x] Add some descriptions and refer relative issues for you PR.

This is a new feature to add a new prop to Dropdown Item. It's now possible to add a icon 🎉

@gabrielboliveira it's awesome.👍Now, the French doc has been added. Fetch the latest code and update the French doc. Don't worry about translation.

@ziyoung done!

Just realized I missed the Typescript definition.. Should I add it?

@gabrielboliveira yes, you are right. I will merge this pr after you add it.

@ziyoung Added. Now it looks good to go 👍


Reading the header

Hi Bruno,
I'm trying to parse Simi biocell files in ImageJ and I came across your code. I wonder could you let me know the interpretation of the headers in the .sbd files? I'm having trouble interpretting them.
Best wishes
Richard

Hi Richard,
I also had troubles with figuring out the .sbd file, but I finally got the format specification. Although some things are still a bit obscure... :
### Data v4.00 ####################################################

# Header: # # # # # # #
SIMI*BIOCELL
400
---
# # # # # # # # # # # #

SIMI*BIOCELL = magic ID string
400          = file version 4.00
---          = separator

# Cell: # # # # # # # #
<free 3D cells count>
<start frame> <end frame> <x> <y> <level> <comment>     <= *count
---
<start cells count> <start time>
<start generation>                                      <= *count
---
<cells left count> <"right> <active cell left> <"right> <gen.name1>
<gen.time of birth sec.> <g.level> <g.wildtype> <g.color> <g.name2>
<birth frm> <mitosis lvl> <wildtype> <size> <shape> <color> <name>
<coordinates count> <cell comment>
<frame> <x> <y> <level> <size> <shape> <coord.comment>  <= *count
---
# # # # # # # # # # # #

<start ...> values are not used yet (for later implementation)
<color> is a real hexadecimal RGB value (e.g. 00ff00 for green)
<size> and <shape> are internal values of BioCell
<coordinates> are real pixels

###################################################################

What are you using to parse it in ImageJ? I think you can easily use the simi.py running as a Jython script. I'm using the library to convert my cell lineage data to the MaMuT format.
Best,
Bruno

Hi Bruno,
Thanks for getting back. Currently I am manually reading the file into
arrays using ImageJ so I can access the data but I'll try using your
python file also. I hadn't realized Mamut was a fiji plugin this might
be the solution I require.
I'll try and work on some front end macro code to import .sbd files
parse and convert to MaMut using your scripts. It would be very useful
for me to be able to do this from within Fiji as my collaborators won't
want to sue Python. Maybe you already have such a macro?
Best
R
On 19/12/16 14:39, Bruno C. Vellutini wrote:

Hi Richard,
I also had troubles with figuring out the .sbd file, but I finally got
the format specification. Although some things are still a bit
obscure... :
|### Data v4.00 #################################################### #
Header: # # # # # # # SIMIBIOCELL 400 --- # # # # # # # # # # # #
SIMIBIOCELL = magic ID string 400 = file version 4.00 --- = separator
Cell: # # # # # # # # <free 3D cells count>  <end
frame>     <= *count ---
  <= *count ---
<"right>  <"right> <gen.name1> <gen.time of birth
sec.> <g.level> <g.wildtype> <g.color> <g.name2>
       <coord.comment>
<= *count --- # # # # # # # # # # # # <start ...> values are not used
yet (for later implementation)  is a real hexadecimal RGB value
(e.g. 00ff00 for green)  and  are internal values of
BioCell  are real pixels
################################################################### |
What are you using to parse it in ImageJ? I think you can easily use
the |simi.py| running as a Jython script. I'm using the library to
convert my cell lineage data to the MaMuT
https://github.com/fiji/MaMuT format.
Best,
Bruno
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nelas/simi.py/issues/1#issuecomment-267979556, or
mute the thread
https://github.com/notifications/unsubscribe-auth/AXgrKCEhb4femmTj-ht-D0J-ml3Vx4P_ks5rJpcpgaJpZM4LQuB8.

Hey, I have a script to convert to MaMuT .xml. It works, but it's not complete yet, and it's fairly specific to the lineage I'm working on. But you can use the parts that are useful. The script is pure python, but Fiji can have macros in Jython (Python for Java), and I guess most of the code can be simply re-used.
The script loads the simi.py library, reads and store the lineage data, and write the data out formatted as .xml. It's here: simi2mamut.py.
The script works (I have my lineage fully loaded on MaMuT), but take care because it's not well documented or finished yet. There are also some known bugs. I will be working on the code in the next weeks. Let me know if you have issues!

Great I'll look into this and let you know how I get on.
Best
R
Sent from [Nylas N1](https://link.nylas.com/link/5d2bggvrpbifq107m8zf6a711
/local-76f4dbee-259a/0?redirect=https%3A%2F%2Fnylas.com%2Fn1%3Fref%3Dn1&r=cmVw
bHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMD
AwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=), the
extensible, open source mail client.
![](https://link.nylas.com/open/5d2bggvrpbifq107m8zf6a711/local-76f4dbee-259a?
r=cmVwbHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJj
ZjAwMDAwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=)
On Dec 19 2016, at 6:29 pm, Bruno C. Vellutini<EMAIL_ADDRESS>wrote:

Hey, I have a script to convert to MaMuT .xml. It works, but it's not
complete yet, and it's fairly specific to the lineage I'm working on. But you
can use the parts that are useful. The script is pure python, but Fiji can
have macros in Jython (Python for Java), and I guess most of the code can be
simply re-used.

The script loads the simi.py library, reads and store the lineage data,
and write the data out formatted as .xml. It's here: [simi2mamut.py](https://g
ithub.com/nelas/simi.py/blob/master/simi2mamut.py&r=cmVwbHkrMDE3ODJiMjg1NmJlOW
U1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5MDQ5MmEx
NjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=).

The script works (I have my lineage fully loaded on MaMuT), but take care
because it's not well documented or finished yet. There are also some known
bugs. I will be working on the code in the next weeks. Let me know if you have
issues!

—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](https://github.com/nelas/sim
i.py/issues/1#issuecomment-268040160&r=cmVwbHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM
3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwN
DAyQHJlcGx5LmdpdGh1Yi5jb20=), or [mute the
thread](https://github.com/notifications/unsubscribe-
auth/AXgrKAURjBtd2T1Ee7CeEs6-i9Ndj-_4ks5rJs0EgaJpZM4LQuB8&r=cmVwbHkrMDE3ODJiMj
g1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5
MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=).![](https://github.com/notif
ications/beacon/AXgrKCq72jWA0T6ETaq1_hvmzyKhVC25ks5rJs0EgaJpZM4LQuB8.gif)

Hi Bruno,
So running your code from the linux cli seems to work (on your test data). It
writes the text to the terminal window. When I copy this and save it as an
.xml file it looks OK. However I can't seem to open it in Mamut? Are there
additional steps required?  If you had an .xml that works with Mamut you could
send me as an example that might help?
As far as running these scripts in Fiji using jython is concerned there are
some problems as I think you used 2.7 and we are stuck at 2.5 in Fiji. So the
OrderedDIct module is not available but this work around fixes that:
http://code.activestate.com/recipes/576693-ordered-dictionary-for-py24/
Place in Fiji/Plugins and import like this:
#OrderedDict is not available in 2.5 so include the following workaround
from java.lang.System import getProperty
import sys
sys.path.append(getProperty("fiji.dir") + "/plugins")
from ordereddict import OrderedDict
from os.path import splitext
The other problem is that the string.format method does not work in Python 2.5
(it still uses % method). I am not great at Python and it is taking me an age
to rewrite your code to take account of this. If its an easy fix for you you
could look at that?
One last question. In the simi files there are lots of cells that seem to be
redundant.
Best wishes
R
Sent from [Nylas N1](https://link.nylas.com/link/5d2bggvrpbifq107m8zf6a711
/local-4a3310ba-57af/0?redirect=https%3A%2F%2Fnylas.com%2Fn1%3Fref%3Dn1&r=cmVw
bHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMD
AwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=), the
extensible, open source mail client.
![](https://link.nylas.com/open/5d2bggvrpbifq107m8zf6a711/local-4a3310ba-57af?
r=cmVwbHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJj
ZjAwMDAwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=)
On Dec 20 2016, at 10:01 am, Richard Mort<EMAIL_ADDRESS>wrote:

Great I'll look into this and let you know how I get on.

Best

R

Sent from [Nylas N1](https://nylas.com/n1?ref=n1&r=cmVwbHkrMDE3ODJiMjg1NmJlOWU
1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5MDQ5MmExN
jljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=), the extensible, open source mail
client.

On Dec 19 2016, at 6:29 pm, Bruno C. Vellutini<EMAIL_ADDRESS>wrote:

Hey, I have a script to convert to MaMuT .xml. It works, but it's not
complete yet, and it's fairly specific to the lineage I'm working on. But you
can use the parts that are useful. The script is pure python, but Fiji can
have macros in Jython (Python for Java), and I guess most of the code can be
simply re-used.

The script loads the simi.py library, reads and store the lineage data,
and write the data out formatted as .xml. It's here: [simi2mamut.py](https://g
ithub.com/nelas/simi.py/blob/master/simi2mamut.py&r=cmVwbHkrMDE3ODJiMjg1NmJlOW
U1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5MDQ5MmEx
NjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=).

The script works (I have my lineage fully loaded on MaMuT), but take care
because it's not well documented or finished yet. There are also some known
bugs. I will be working on the code in the next weeks. Let me know if you have
issues!

—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](https://github.com/nelas/sim
i.py/issues/1#issuecomment-268040160&r=cmVwbHkrMDE3ODJiMjg1NmJlOWU1NWQ4YTQxZmM
3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5MDQ5MmExNjljZTBiYjUwN
DAyQHJlcGx5LmdpdGh1Yi5jb20=), or [mute the
thread](https://github.com/notifications/unsubscribe-
auth/AXgrKAURjBtd2T1Ee7CeEs6-i9Ndj-_4ks5rJs0EgaJpZM4LQuB8&r=cmVwbHkrMDE3ODJiMj
g1NmJlOWU1NWQ4YTQxZmM3NjFiNWY4ZTEzMGViMWJmMjFmNzNiYzY0OTJjZjAwMDAwMDAxMTQ2ZmU5
MDQ5MmExNjljZTBiYjUwNDAyQHJlcGx5LmdpdGh1Yi5jb20=).![](https://github.com/notif
ications/beacon/AXgrKCq72jWA0T6ETaq1_hvmzyKhVC25ks5rJs0EgaJpZM4LQuB8.gif)

Hi! I just pushed a quick fix for the MaMuT file. The script was only printing the spots and edges part of the XML and now it outputs the whole file. Make sure the new file mamut_xml_templates.py is on the same folder as simi.py and simi2mamut.py.
For now, you need to manually change the ImageData in the Settings part at the end of the XML (filename, folder, width, height, nslices, nframes). This information is on the .xml file that pairs the .h5 created by the BigDataViewer. I assume you have MaMuT installed and your data on HDF5 format.
Check now if you can open the XML with MaMuT using "Load MaMuT file".
I'll reply for the next issues below.

About the OrderedDict and string format, I hadn't realized Jython was so outdated. Before we delve into Python 2.5 compatibilities, do you really need the conversion from Simi to MaMuT to be ran within Fiji? You mentioned that your collaborators won't use python, but how is the workflow that you imagined? If they will fire up Fiji and run the conversion, it is also possible use the system's python installation to run simi.py. You can for example call exec in a ImageJ macro:
exec('sh', '-c', 'cd /directory/to/simi.py/; python simi2mamut.py')

This prints out MaMuT's xml within Fiji, but you can do all sorts of things with the output (e.g. saving it somewhere and directly opening in MaMuT, for instance). Most computers today have Python 2.7 or it's easy to install, so simi.py should run without any additional installation.
If this is not the workflow you need, I just saw that Jython 2.7 exists and should cover these quirks. Just a matter of updating it in Fiji (maybe the devs can do it in a breeze).
The third alternative is to update simi.py code to accommodate py2.5. It's not particularly complicated, but it will be a hassle to maintain the compatibility over time.
Let me know what you think!

On my lineage files there are a lot of cells that do not really exist (i.e. haven't been tracked). I think they come from the default template based on C. elegans lineage.
To decide whether a cell is valid or not, I check if the cell has any spots (i.e. a manually tracked point with xyz coordinates). This is done here. Only valid cells are used to build the MaMuT file.

Cheers for your messages. I'll try the new code when i get chance over Xmas. I agree the best option would be for Fiji to upgrade jython. I'll look into this. I'll need to look into calling Python externally. I'm guessing this will be hard to make consistent between platforms.
Have a great holiday!
R
Sent from BlueMail
On 22 Dec 2016, 11:38, at 11:38, "Bruno C. Vellutini"<EMAIL_ADDRESS>wrote:

Hi! I just pushed a quick fix for the MaMuT file. The script was only
printing the spots and edges part of the XML and now it outputs the
whole file. Make sure the
new file mamut_xml_templates.py is on the same folder as simi.py
and simi2mamut.py.
For now, you need to manually change the ImageData in the Settings
part at the end of the XML (filename, folder, width, height, nslices,
nframes). This information is on the .xml file that pairs the .h5
created by the BigDataViewer. I assume you have MaMuT installed and
your data on HDF5 format.
Check now if you can open the XML with MaMuT using "Load MaMuT file".
I'll reply for the next issues below.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/nelas/simi.py/issues/1#issuecomment-268782713

Hi Bruno,
Happy new year! I'm just catching up on the emails you sent before the
break. When I run your new code I get the following error opening the
.xml with mamut:
(Fiji Is Just) ImageJ 2.0.0-rc-54/1.51h; Java 1.8.0_66 [64-bit]; Linux
4.4.0-57-generic; 154MB of 10805MB (1%)

java.lang.NullPointerException
at
fiji.plugin.trackmate.io.TmXmlReader.readTracks(TmXmlReader.java:1011)
at
fiji.plugin.trackmate.io.TmXmlReader.getModel(TmXmlReader.java:338)
at
fiji.plugin.mamut.LoadMamutAnnotationPlugin.load(LoadMamutAnnotationPlu
gin.java:74)
at
fiji.plugin.mamut.LoadMamutAnnotationPlugin.run(LoadMamutAnnotationPlug
in.java:61)
at ij.IJ.runUserPlugIn(IJ.java:217)
at ij.IJ.runPlugIn(IJ.java:181)
at ij.Executer.runCommand(Executer.java:137)
at ij.Executer.run(Executer.java:66)
at java.lang.Thread.run(Thread.java:745)
Best
R
On Thu, 2016-12-22 at 03:38 -0800, Bruno C. Vellutini wrote:

Hi! I just pushed a quick fix for the MaMuT file. The script was only
printing the spots and edges part of the XML and now it outputs the
whole file. Make sure the new file mamut_xml_templates.py is on the
same folder as simi.py and simi2mamut.py.
For now, you need to manually change the ImageData in the Settings
part at the end of the XML (filename, folder, width, height, nslices,
nframes). This information is on the .xml file that pairs the .h5
created by the BigDataViewer. I assume you have MaMuT installed and
your data on HDF5 format.
Check now if you can open the XML with MaMuT using "Load MaMuT file".
I'll reply for the next issues below.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi Richard, Did you manage in the end to run simi.py within Fiji? Best!

Hi Bruno,
In the end (thanks to your explanation of the header) I wrote me own code to read the Simi files and draw the lineage trees. It also extracts the interdivision times.
https://github.com/richiemort79/simi_reader
Thanks for your help. And cheers for the colourblind luts also I've been using those recently.
Best wishes
R
Sent from Alto

Nice! Glad it worked out. I'll close the issue, but feel free to re-open if you need.
Cheers


Fix issues with scripts when CDPATH is set

The CDPATH environment variable can cause the cd command to sometimes
produce output. This breaks runner_script_dir detection in several
scripts. This fix suppresses the output from the cd command whenever it
is produced and allows the scripts to successfully detect the correct
directory for runner_script_dir.
For more information on when cd might produce output, see:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd.html#tag_20_14_10

Would it be simpler to just add unset CDPATH at the top of the scripts?
https://github.com/sstephenson/rbenv/pull/326

That might indeed be simpler, but it cannot be isolated in the same way that the current approach can. In other words, to unset the CDPATH would require doing so in each script that uses the runner_script_dir variable, whereas if we fix the problem in the runner_script_dir itself it applies to any and all scripts that use it.
What do you think?

I vote for fixing this "once and for all" in the top of all of our scripts. It may be more work now, but it would prevent this issue permanently going forward.

So two issues - We're not sure if unset CDPATH is sufficient, and the other proposal, export -n CDPATH isn't actually POSIX/portable from what I can tell. We do, however, know that this fix (redirecting cd's stdout) will always work, no matter what stupid thing some shell decides to add to cd to output additional things.

unset CDPATH is sufficient, I shouldn't have linked to the other bit of code.
It should just be a matter of adding unset CDPATH here, unless I'm missing something:
https://github.com/basho/node_package/blob/develop/priv/base/env.sh#L17

also needs to be included in https://github.com/basho/node_package/blob/develop/priv/base/runner#L6 if we go that way.

More scripts which would need unsets:

https://github.com/basho/riak/blob/89e4df90026966838e3156df51688c1b0dbcf3c5/rel/files/search-cmd#L6
https://github.com/basho/riak/blob/89e4df90026966838e3156df51688c1b0dbcf3c5/rel/files/riak-admin#L5
https://github.com/basho/riak/blob/89e4df90026966838e3156df51688c1b0dbcf3c5/rel/files/riak-debug#L137
https://github.com/basho/riak_ee/blob/8ef6406f354f323ec627dae0859ff46da55d9251/rel/files/search-cmd#L5
https://github.com/basho/riak_ee/blob/8ef6406f354f323ec627dae0859ff46da55d9251/rel/files/riak-repl#L6
https://github.com/basho/riak_ee/blob/8ef6406f354f323ec627dae0859ff46da55d9251/rel/files/riak-admin#L6
https://github.com/basho/riak_ee/blob/8ef6406f354f323ec627dae0859ff46da55d9251/rel/files/riak-debug#L137

Well that's unfortunate. I'd like to suggest that 1>/dev/null be used instead of 1>&- for this reason as well as the 1>/dev/null idiom being more familiar.

Example of the latter:
lbakken@brahms ~
$ export CDPATH="$HOME/Projects"
lbakken@brahms ~
$ cd basho
/home/lbakken/Projects/basho
lbakken@brahms ~/Projects/basho
$ cd
lbakken@brahms ~
$ cd basho 1>&-; echo $?
-bash: cd: write error: Bad file descriptor
1

@lukebakken I'm happy to change it to 1>/dev/null as long as that is portable to all of our supported systems.

If that's not portable we have a bigger problem than CDPATH :smile:

Ha, fair enough.

Also, using 1>&- won't work:
lbakken@brahms ~
$ export CDPATH="$HOME/Projects"
lbakken@brahms ~
$ cd basho 1>&- && /bin/pwd
-bash: cd: write error: Bad file descriptor

Wow, such bizarre behavior:
lbakken@BRAHMS-WIN8PRO ~
$ export CDPATH="$HOME/Projects/basho"
lbakken@BRAHMS-WIN8PRO ~
$ cd riak-nodejs-client 1>&- && /bin/pwd
-bash: cd: write error: Bad file descriptor
lbakken@BRAHMS-WIN8PRO ~/Projects/basho/riak-nodejs-client (issues/lrb/gh-69 *=)
$

The working directory changed even though cd failed to write to stdout.

Yea - it seems as if cd doesn't actually care if it can write to stdout or not - it writes the failure to stderr but still succeeds. That said, > /dev/null is probably better (although I somehow still like 1>&- better :) )

To be pedantic, we can't use 1>&- - see my latest example.

Ah yea - I think it only works because we happened to test it from the "right" parent dir to make it work even though the command returned no output. Not so good. /dev/null it is.

I have made the change to redirect to /dev/null in a0453c3.

Also: https://github.com/basho/riak_ee/pull/338

:+1:

Tested on Linux (Ubuntu) and Mac OS, for paranoia's sake. :+1:

The truly paranoid test with Solaris /bin/sh ;)
On Tue, Jun 23, 2015 at 8:37 AM Jason Voegele<EMAIL_ADDRESS>wrote:

Merged #743 https://github.com/basho/riak/pull/743.
—
Reply to this email directly or view it on GitHub
https://github.com/basho/riak/pull/743#event-337893050.


Updated README.rst with svg badge

Current coverage is 55.72% (diff: 100%)

Merging #121 into master will not change coverage

@@             master       #121   diff @@
==========================================
  Files            36         36
  Lines          1466       1466
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            817        817
  Misses          649        649
  Partials          0          0

Powered by Codecov. Last update 04739df...f54b883


Problem with ARM

Hi everyone!
I have a problem loading the indices. I trained the model on a server architecture and exported the .index files. The model should be loaded on an edge computer running on a armhf architecture (debian buster). When trying to load the .index file I am getting the "RuntimeError: Index seems to be corrupted or unsupported". The file sizes of the index files are all correct and on a unix system I loaded those files without any problems. So it seems to be a problem with the architecture. Is there a possibility to load them without training the model again on the arm environment, which is not as performant?

@ndebbrecht
Yes, as @searchivarius suggested, it would require some changes in the code.
I see two options:

directly change little/big endian in loading index. Not sure if floats also need to change
make ascii-based serialization (a more general solution).
Both of the approaches would require to add custom serialization of the data.

I can help with that (a little) if you like.

Floats sure need to change. You have 4 float bytes stored as x y z t on Intel, but it will be loaded something like t z y x on ARM. There are posix functions to deal with it. Alternatively, there's a boost library. But it's some non-trivial amount of work to save/load in endianness-neutral format.

@searchivarius
I see. Then, ascii probably would be a better solution.

@searchivarius I see. Then, ascii probably would be a better solution.

same problem.How did you solve it?


fix: set ref in getCalcFirstStep

Suggested by @gebner at https://leanprover.zulipchat.com/#narrow/stream/348111-std4/topic/Random.20calc.20ranges/near/372704972. Sebastian wrote this is sufficiently tiny fix to allow for a direct PR.

Yes, setting the syntax to be destructured as the ref is I think always an uncontroversial move. So much so that it could be automated, except I don't think we want to move back to match_stx nor make some matches effectful.


Make it possible to merge two state directories into one

This should be exposed as shnorky state merge [STATE_DIRS ...] on the CLI.

Closing in favor of https://github.com/simiotics/shnorky/issues/37