Optimize static code reusage

Summary of the new feature / enhancement
The section Avoid repeated calls to a function hits a good point. But there are quiet some situations were it is needed to (re)use the specific code block at several locations in a script, which leaves a dilemma:
Should I create a quiet expensive function for a easier manageable DRY code, or
Should I go for performance and copy the concerned piece of code block at several locations?
For details see stackoverflow question/answer: What is the best way to reuse static code
Proposed technical implementation details (optional)
It would be good to be able to reuse specific code blocks at (almost) no extra costs
I am imaging a specific syntax to refer to an existing code block but it could also be a smarter dot-sourcing: in the case CodeBlock is assigned to a variable and the variable is dot-sourced (and there are no arguments in play), replace the variable with the literal code:
In other words:
$MyCode = { "Some static code $Value" }
for ($Value = 0; $Value -lt 10; $Value++) {
    . $MyCode
}

Compile as if it would be literal code:
for ($Value = 0; $Value -lt 10; $Value++) {
    "Some static code $Value"
}

Should I go for performance and copy the concerned piece of code block at several locations?

The difference in speed is not very significant between the literal code and the invocation. The sourced script-block lags behind.
 $ h -Count 3 | fl Commandline, Duration

CommandLine : & {
              $out = for ($Value = 0; $Value -lt 10000; $Value++) { "Some static code $Value" }; $out
              }
Duration    : 00:00:00.2244007

CommandLine : & {
              $MyCode = { "Some static code $Value" }
              $out = for ($Value = 0; $Value -lt 10000; $Value++) { $MyCode.Invoke() }; $out
              }
Duration    : 00:00:00.2992577

CommandLine : & {
              $MyCode = { "Some static code $Value" }
              $out = for ($Value = 0; $Value -lt 10000; $Value++) { . $MyCode }; $out
              }
Duration    : 00:00:00.4969723

I would caution against microbenchmarking PowerShell in general. There are a ton of pitfalls that can skew results or in general be misleading compared to real world code.
A static method will likely be the fastest (other than including inline) for most work loads. I'd personally suggest using a type nested in the function if the code is not used outside of it.
For the proposal, I'd recommend finding some notable examples of existing code that could benefit from something like this. The compiler is one of the most complicated parts of the code base and this change would require a decent chunk of time from someone who knows it very well. The bar for impact will be pretty high

@SeeminglyScience  put it well
This structure
for ($Value = 0; $Value -lt $x ; $Value++) {
    . $mycode
}

Is almost always bad, because (a) there are a million call/returns  (b) we have no idea what is happening in the loop. If it is a function which acts as a "black box" where we don't need to know how something is implemented AND it is being called a small number of times then it is OK.
But if we need to go and find $myCode to understand what the whole does. (i.e. it isn't a black box) then it's just spaghetti code.  A goto by other means. (well a goSub, really).   Sadly some people learn practises which make their code jump about when it doesn't need need to and is just harder to understand as a result
for ($i = 0; $i -lt $x ; $i++) {
    transferMoney $National_transactions[$i]
}
```
Might be acceptable especially if $x is always small, and if we don't need to know _how_ a transfer is done, and is _preferable_ if transfer is called from multiple places.  But writing a function which we expect to process many items one after the other, but where each must be passed singly would be an mistake. `transferMoney` in my example should be written to accept an array so it can be called without the loop.
```
    transferMoney $National_transactions[0..$x]
   ...
    transferMoney $International_transactions[0..$y]
```


Create pawn.json

Since sampctl is getting to the point where it's production-ready, I'm encouraging people to start using it while developing libraries as it should make the process of testing and developing a lot smoother. It's designed so you don't need a pawn.json/pawn.yaml ("Pawn-Package Definition" file) in every repo, but having it there really helps with dependency management! These changes are purely additive and do not change your code or scripting style in any way, you don't need to use sampctl yourself but I encourage you to give it a try!

added sampctl package files for version control, so a user could now simply run sampctl package install Zeex/samp-plugin-crashdetect to start using this library in their gamemode. Also defines resources section which allows servers to automatically download a specific version of the plugin binaries.

Thanks.
In case you're accepting suggestions or reading these PRs (they seem like an automated thing), I think pawn.json may be a too generic name for SA-MP specific packages, samp.json or samp-package.json would be better in my opinion. But that's just me, I don't do SA-MP stuff much.

Oh yeah they do look a bit automated as it was a copy-paste message to try and introduce people to the tool, sorry about that!
I see what you mean, but sampctl would actually work outside of a SA:MP context - if such a project exists that uses Pawn as a scripting language. It's just unfortunate that I went with sampctl and "pawn.json", it might be a bit late to change this as the file name is used in quite a few repositories now.
I was considering splitting the package manager part of "sampctl" into its own tool called "rook", which I could still do and that would make it more viable as a Pawn tool rather than a SA:MP tool. The package format would not need to be modified as it's still just a list of dependencies and an entry-point to point the compiler at.


Still the auto completion with MSSQL for dbo tables in 5.3.3 -- ommiting owner in query

Hi,
I'm trying to use DBeaver instead of SQL Server Management Studio since I work with MSSQL, Oracle and Mysql databases.
But I have a lot of queries already prepared using the sintax:
> 	select * from nus..C_USER s where s.ide_usr='148'
With which DBeaver seems not to work to guess the "ide_usr" from "s" table.
If I make explicit the owner of the table:
> 	select * from nus.dbo.C_USER s where s.ide_usr='148'
The Completion works as expected.
Of course, it is not a lot of work to replace all ".." with ".dbo."; but, since SQL Server Management Studio works well with this sintax, I ask: is that an issue, maybe a misconfiguration of my connection? If not, wouldn't that be a nice-to-have feature?

Hello @mamendex
Thanks for the suggestion. But auto-complete to the SQL Editor is universal for different databases, and different databases may have different schemas indicated after the name of the database. Not only "dbo".
Therefore, we hope that users will use the full path to the object with the schema.
And we want to avoid misunderstandings if we guess the schema name that is missing between the object name and the database name.


Contribute to the Repair Cafe Licence

Hi members let's contribute to the repair cafe licence

can be closed? or what do you mean exactly? License files are usually just a template with name of originator and/or contributors/Organisation


Fix flaky test: wait until the CIDR created

Wait until ClusterCIDR is created before updating it.
This PR also manually configures ginkgo so now output contains all test names.

/lgtm
/approve
Thanks


roleccl: WITH ADMIN check no longer bypassed on admin role

PR: https://github.com/cockroachdb/cockroach/pull/41218
From release notes:

Users GRANTing and REVOKEing admin roles must be members of the admin role with ADMIN OPTION. This check was previously bypassed. [#41218][#41218] {% comment %}doc{% endcomment %}

Addressed in https://github.com/cockroachdb/docs/pull/7003


Text visible for discord and linkedIn buttons

#394  fixed.
The text is now visible for discord and linkedIn buttons.

Thank you @Saimanjari777


vscode.dev type acquisition fails if project has a GitHub dependency

For the project https://github.com/mjbvz/test-ts-ata-web, open on GitHub.dev/vscode.dev: https://github.dev/mjbvz/test-ts-ata-web

Open index.ts

Bug
Loading never finishes
The root cause is the our type acquisition fails:
 panicked at 'Git dependencies are not enabled. (While trying to process git+ssh://git@github.com/markedjs/marked.git#b47358cb1711b29237e074737cb4e5f9a98e3914)', crates/nassun/src/client.rs:289:24

Stack:

Error:
	at T.A.wbg.__wbg_new_abda76e883ba8a5f (
...

cc @zkat

Here's the de-minified error stack:
console.js:98 [Extension Host] panicked at 'Git dependencies are not enabled. (While trying to process git+ssh://git@github.com/markedjs/marked.git#b47358cb1711b29237e074737cb4e5f9a98e3914)', crates/nassun/src/client.rs:289:24

Stack:

Error:
	at imports.wbg.__wbg_new_abda76e883ba8a5f (http://localhost:8080/static/sources/extensions/typescript-language-features/dist/browser/extension.js#vscode-extension:32208:21)
	at wasm://wasm/006eb5d6:wasm-function[980]:0x117fcf
	at wasm://wasm/006eb5d6:wasm-function[3148]:0x1627f7
	at wasm://wasm/006eb5d6:wasm-function[1593]:0x1462cc
	at wasm://wasm/006eb5d6:wasm-function[1777]:0x14f131
	at wasm://wasm/006eb5d6:wasm-function[3135]:0x162786
	at wasm://wasm/006eb5d6:wasm-function[2130]:0x159a94
	at wasm://wasm/006eb5d6:wasm-function[2345]:0x15db52
	at wasm://wasm/006eb5d6:wasm-function[1286]:0x1337b7
	at wasm://wasm/006eb5d6:wasm-function[1286]:0x1337c5
	at wasm://wasm/006eb5d6:wasm-function[1366]:0x139143
	at wasm://wasm/006eb5d6:wasm-function[107]:0x4a8a
	at wasm://wasm/006eb5d6:wasm-function[115]:0x1e630
	at wasm://wasm/006eb5d6:wasm-function[573]:0xde655
	at wasm://wasm/006eb5d6:wasm-function[1595]:0x14642a
	at wasm://wasm/006eb5d6:wasm-function[991]:0x11931e
	at wasm://wasm/006eb5d6:wasm-function[2611]:0x1607a9
	at __wbg_adapter_53 (http://localhost:8080/static/sources/extensions/typescript-language-features/dist/browser/extension.js#vscode-extension:31373:10)
	at real (http://localhost:8080/static/sources/extensions/typescript-language-features/dist/browser/extension.js#vscode-extension:31354:20)

Seeing if I can catch the error for now

Not super useful stack in the error message. real is form inside makeMutClosure from the rust adapter . Here's more of the stack

As discussed elsewhere: orogene does not currently support packing, which is needed for git (and http) dependencies supported. We could handwave things away and say that wasm isn't going to have packing/building-related logic, which is probably reasonable. In that case, the changes to orogene are much smaller and most of the important bits are there already and just need to be rearranged a little (namely, orogene already has all the logic it needs around figuring out where github/bitbucket/gitlab put their ready-to-download tarballs, as well as downloading them and extracting them. It just kinda does this maneuver where it tries to extract it into a temp dir first, for Reasons, but we can just skip that and feed the file directly to the package-fetching logic and be done with it.
I'm happy to help walk anyone interested through doing this, as the second alternative is really not a lot of work, or even pairing a bit on it. :)


Move QuadGK-specific code to Requires

Codecov Report

Merging #38 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #38      +/-   ##
==========================================
+ Coverage   96.63%   96.64%   +<.01%
==========================================
  Files           9        9
  Lines         535      536       +1
==========================================
+ Hits          517      518       +1
  Misses         18       18

Impacted Files
Coverage Δ

src/math.jl
98.89% <ø> (-0.05%)
:arrow_down:

src/Measurements.jl
95.65% <100%> (+2.79%)
:arrow_up:

Continue to review full report at Codecov.

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


Bug report Stuck on "Loading..."

What happened?
I don't know what caused this but overnight every single query in my vault outputs:
Loading... (if DQL)
Evaluation Error: TypeError: i.push is not a function
    at l$1.diffed (plugin:dataview:14592:1539)
    at j$2 (plugin:dataview:14590:6418)
    at w$2 (plugin:dataview:14590:2236)
    at j$2 (plugin:dataview:14590:6192)
    at w$2 (plugin:dataview:14590:2236)
    at L$1 (plugin:dataview:14590:7442)
    at j$2 (plugin:dataview:14590:6377)
    at w$2 (plugin:dataview:14590:2236)
    at L$1 (plugin:dataview:14590:7442)
    at j$2 (plugin:dataview:14590:6377)

(if js)
I've tested this with all kind of very simple queries and always get the same output.
Dataview Version
0.5.55
Obsidian Version
1.1.16
OS
MacOS

I

Can you share that original query for reference? This is a weird issue.

I'm so sorry I can't find it, I will do if the issue pops up again

i have same error
the log as follows:
Uncaught (in promise) TypeError: i.push is not a function
at l$1.diffed (plugin:dataview:15978:1539)
at j$2 (plugin:dataview:15976:6418)
at w$2 (plugin:dataview:15976:2236)
at j$2 (plugin:dataview:15976:6192)
at w$2 (plugin:dataview:15976:2236)
at j$2 (plugin:dataview:15976:6192)
at S$1 (plugin:dataview:15976:8401)
at ReactRenderer.onload (plugin:dataview:16220:9)
at e.load (app.js:1:869278)
at e.addChild (app.js:1:869679)
obsidian SYSTEM INFO:
Obsidian version: v1.1.16
Installer version: v1.1.9
Operating system: Windows 10 Enterprise 10.0.19045
Login status: not logged in
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: dark
Community theme: none
Snippets enabled: 0
Restricted mode: off
Plugins installed: 27
Plugins enabled: 24
1: Admonition v9.0.5
2: Advanced Tables v0.18.1
3: BookNote v0.2.4
4: Calendar v1.5.10
5: cMenu v1.1.2
6: Custom Frames v2.4.4
7: Dataview v0.5.52
8: Day Planner v0.5.8
9: Excalidraw v1.8.8
10: Kanban v1.5.1
11: Media Extended v2.11.1
12: Media Extended BiliBili Plugin v0.3.1
13: Mind Map v1.1.0
14: Obsidian42 - BRAT v0.6.36
15: Outliner v4.2.1
16: Remotely Save v0.3.25
17: Templater v1.16.0
18: Web Browser v0.0.3-beta
19: Tasks v1.25.0
20: Reminder v1.1.15
21: QuickAdd v0.10.0
22: Weread Plugin v0.4.8
23: Projects v1.14.0
24: DB Folder v3.3.3
RECOMMENDATIONS:
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.
the query as forllow
TASK
WHERE
due >= date(today)
and (start <= date(today) and start != "")
and contains(path,"daily-manager")
and !completed

Y'all are on the latest version right?

Can you reliably reproduce this in the sandbox vault?

今日待办
项目跟进
TASK
WHERE
contains(path,"timeManage")

学习任务
杂事
日常习惯

[ ] 早上7点起床 #daily/habit
[ ] 早上7点半锻炼身体 #daily/habit
[ ] 早上8点读书 #daily/habit
[ ] 晚上11点复盘 #daily/habit
[ ] 晚上12点睡觉 #daily/habit

日常分析
习惯分析
习惯分析
		var tasks = dv.current().file.tasks .where(t => t.text.includes("#daily/habit"))
		var finishCnt = 0
		for (i=0;i<tasks.length;i++)
		{
			if (tasks[i].completed == true)
			{
				finishCnt += 1
			}
		}
		dv.header(5, "今日日常习惯总数：" + tasks.length)
		dv.header(5, "今日日常习惯完成：" + finishCnt)

复盘
工作分析

Details

今日待办
项目跟进
TASK
WHERE
contains(path,"timeManage")

学习任务
杂事
日常习惯

[ ] 早上7点起床 #daily/habit
[ ] 早上7点半锻炼身体 #daily/habit
[ ] 早上8点读书 #daily/habit
[ ] 晚上11点复盘 #daily/habit
[ ] 晚上12点睡觉 #daily/habit

日常分析
习惯分析
习惯分析
		var tasks = dv.current().file.tasks .where(t => t.text.includes("#daily/habit"))
		var finishCnt = 0
		for (i=0;i<tasks.length;i++)
		{
			if (tasks[i].completed == true)
			{
				finishCnt += 1
			}
		}
		dv.header(5, "今日日常习惯总数：" + tasks.length)
		dv.header(5, "今日日常习惯完成：" + finishCnt)

复盘
工作分析


Reach outside of Docker container to interact with host services

Is this possible using this image yet? It would be useful when using this image as the openvpn server, but also accessing services available only on the local network of the machine that is hosting the container, as with traditional VPN setups. For instance, accessing a mongod instance that only accepts local connections.

I'm also trying to do the same. I've tried to setup using the various config options, currently:
docker run --volumes-from $OVPN_DATA --rm kylemanna/openvpn ovpn_genconfig -u udp://vpn.mydomain.com -c -N
I'm in hosted in AWS and need to restrict the inbound traffic so services in my docker cloud are only available when connected through the VPN. Can't quite figure out this last piece... @looterz did you find a solution? Or any pointers @kylemanna?

I never did find a solution to this issue, unfortunately.

Think it's an issue with the ip routing of the docker container... and/or the ovpn config. I'm not sure about this as it's outside my normal skill set. Think that I need to add some params to the ovpn config:

add -t to allow tap connectivity (the docker container should already have a bridged network interface). Read somewhere that you need this mode to share the hosts resources.
add a route with -r <IP_ADDRESS> <IP_ADDRESS> ... or something like that shown from the host or docker container 'route' command

It might also be that I need to add a loopback adapter... or perhaps something to the hosts file on the host / ovpn container (the host machine can't reach it's own public ip and might need mapping to it's private ip).
Will let you know if I figure it out.

I've got it working for my situation... basically I have a cloud of docker containers - in essence a series of web apps. They are behind an nginx proxy (also in docker). I'm hosted in AWS and have now closed port 80 on the inbound traffic since I have the VPN working now and all traffic reaches my instance through the tunnel.
This means that none of my dockerised web apps are publicly available... unless you're connected to the VPN.
To do this I've added some additional config to whats described for this docker image:
-r [AWS private IP] -c -t
I am actually not 100% that this additional route is required... need to re-test without it. The missing piece was to add to the hosts file on the local machine / vpn client machine. I added the:
[AWS private IP] subdomain.yourdomain.com othersubdomain.yourdomain.com
Now it's working for my use-case. Hope this helps :)

This looks to be a duplicate of #109.

So does this mean that you would need 2 instances of an AWS machine and you couldn't use something like docker-compose and run all containers on the same instance and just allow only a connection to the VPN and then while in the private network connected to the vpn be able to connect to the the other containers just by container name?

@GetafixIT thanks so much for sharing what worked for you!  I had to do something a little different (-t didn't work for me):
-r [AWS Private IP] -n [AWS DNS Server] -c
The DNS server was necessary to access other AWS instances than the one my OpenVPN was running on.

@devotox I think you wouldn't need to do anything beyond the instructions in the README to access other containers on the same host as the OpenVPN container, as long as you connect to public ports on those containers.

Hey, so here is my solution to hide docker containers behind this VPN:

I run OpenVPN with "network_mode": "host" (in docker-compse, for normal docker run you just say --net host)
Then I run other container with port mapping like this:

    ports:
      - "<IP_ADDRESS>:80:80"

In my case I run jenkins with internal port, and nginx-proxy separatelly that is exposed the way I described, and it proxy passes the traffic to jenkins:
When I will be running more tools there I will probably just set up nginx-proxy

Closing due to no updates in a few months.

Closing due to no updates in a few months.

Hi @kylemanna and @bartoszhernas
I'm still trying to achieve this without luck.
Have tried spawning the openvpn container in host mode and another container binding to <IP_ADDRESS>.  The other container then can ping my connected client e.g. <IP_ADDRESS>. But the other container does not have an address in <IP_ADDRESS> so I cannot ping it from the client.

thanks so muck @bartoszhernas!


parallelize bzimport (OSIDB-864)

Simple parallelization of bzimport flaw sync using joblib and threads. It seems to show nearly linear thread-number-wise improvement on the local machine so should help us prevent waiting several day until an instance gets in sync. I tested how it behaves with the exception raised in one of the threads and simply fails all which is what we want as the collector framework will ensure the rerun.
Closes OSIDB-864

@Elkasitu so what do you suggest? Using processes instead of the threads? I guess we do not care much. The real parallelism is probably not needed. We just need to open multiple Bugzilla queries and wait for the responses in parallel. Sure we could come up with some cleaner solution using Celery. I am not sure it is worth the investment now. As this is a pure backend matter we can rewrite it any time without causing some major release etc.


Opportunities page edit link

Many screen widths require horizontal scrolling for the edit link which is very confusing

Closed in https://github.com/bikebrigade/dispatch/commit/5a408e534b69bfbb3254e3a01f72d16235283f2d


set_file_line resource

I find myself writing recipe code like the following all the time in order to set a specific value in a file. I plan to create a helper cookbook to wrap this in a resource, but it would be great if chef had a resource like this out of the box.
Here is what I am doing:
conf_file = "#{node['sonarqube-cvent']['install_path']}/conf/sonar.properties"
ruby_block "set sonar.web.host=<IP_ADDRESS>" do
  block do
        file = Chef::Util::FileEdit.new(conf_file)
        file.search_file_replace_line(/.*sonar\.web\.host.*/, 'sonar.web.host=<IP_ADDRESS>')
        file.insert_line_if_no_match(/.*sonar\.web\.host.*/, 'sonar.web.host=<IP_ADDRESS>')
        file.write_file
  end
  not_if "egrep -q \"^sonar\\.web\\.host=127\\.0\\.0\\.1$\" #{conf_file}"
  notifies :restart, 'service[sonarqube]', :delayed
end

What I would like to see is a resource like the following:
set_file_line "set sonar.web.host=<IP_ADDRESS>" do
  file_name conf_file #defaults to resource name
  pattern /.*sonar\.web\.host.*/  #any line matching this pattern is removed unless its an exact math for value.
  value 'sonar.web.host=<IP_ADDRESS>' #This line is inserted, replacing the first ocurence of pattern, or at EOF if pattern not found.  Should be a noop if this exact line already exists in file.
  notifies :restart, 'service[sonarqube]', :delayed  #Notify if file actually modified.
end

Does this make sense to have a general chef resource or is there something out there like this that I am not aware of?

@kbaltrinic the line cookbook: https://supermarket.chef.io/cookbooks/line is probably the thing you're most after

Yep, that works.


show latest version of action in hover tooltip

like vscode builtin npm package tooltip:

I'll leave this open, but someone would have to make a pr.

Looking into something similar. Would love to lend a hand here.


Stronghold of Security

Started working on Stronghold of Security update.

Stronghold of Security is finished. Only missing npc combat definitions and drop tables.


LWG3031

The issue LWG3031 deals with predicates taking non-const references in sorting algorithms (and probably other classes of algorithms as well). It does sound like it matters to us too, so look at what they do and apply the required transformation to be consistent with the issue's resolution.

From what I have been told LWG3031 is worded so that algorithms are compliant no matter whether they accept predicates that take non-const parameters or not. When predicates are valid with both const or non-const parameters it's up to the predicate author to make sure that they are consistent (calling such a predicate with const or non-const parameters has to return the same result).
I think that we could try to officially support predicates taking non-const parameters too as long as they're consistent as described above. It would still be allowed by LWG3031 and stronger guarantee than the one provided by the standard.

Those two commits should be enough for most sorters and adapters to support predicates taking non-const references, as allowed by LWG3031. More support can be added later if needed.


Use of Delete

class test {
public void main() {
int[] a = new int[10];
delete a;
class test b = new test();
delete b;
delete (new test());
int[][] a = new int[10][20];
delete a[2]; (* Not sure if this would delete the entire 1-d array )
( Probably should make this undefined *)
}
}

khal@khal-VirtualBox:~/Dice$ ./dice -c Test\ Suite/Compiler_Test_Suite/test-delete.dice
Fatal error: exception Exceptions.ArrayLargerThan1Unsupported
Raised at file "hashtbl.ml", line 136, characters 19-28


Actually run customer_testing shard on Windows

When dart became a batch file, the semantics changed because on Windows calling a batch file directly aborts the calling file.
You have to use CALL to call a batch file from another.

test-exempt: is a test
Though I wonder if there's some way we could adjust the logic in the recipes to verify that we're not unintentionally using this windows "feature" since it's quite possible it's going to bite us again...

Apparently Glob() doesn't like ../ in the path, and also really wants forward slashes not backslashes.

Are you saying these haven't run since we introduced the dart.bat file?

Are you saying these haven't run since we introduced the dart.bat file?

Seems that way.

Could this have caused the current build redness?  It seems to have started when this merged.
Sample failures: https://ci.chromium.org/ui/p/flutter/builders/prod/Linux_android flutter_engine_group_performance/4230/overview

Actually, it seems unlikely, since those failures are on Linux.


Update quick start for v0.6

Signed-off-by: Frank Liu<EMAIL_ADDRESS>

Codecov Report

Merging #1169 (40f2240) into main (a03e553) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1169   +/-   ##
=======================================
  Coverage   63.13%   63.13%
=======================================
  Files         236      236
  Lines       11334    11334
  Branches     1801     1801
=======================================
  Hits         7156     7156
  Misses       3715     3715
  Partials      463      463

Continue to review full report at Codecov.

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

/lgtm
/approve


NIFI-10652 Correct dependency scopes for nifi-iceberg-processors

Summary
NIFI-10652 Corrects dependency scoping for nifi-iceberg-processors and nifi-iceberg-processors-nar to avoid unnecessary duplication of dependencies available in nifi-iceberg-services-api-nar. The changes reduce the size of nifi-iceberg-processors-nar from over 110 MB to around 20 MB.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[X] Apache NiFi Jira issue created

Pull Request Tracking

[X] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[X] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[X] Pull Request based on current revision of the main branch
[X] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[X] Build completed using mvn clean install -P contrib-check

[X] JDK 8
[ ] JDK 11
[ ] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

Hi @exceptionfactory, thanks for checking the dependency scope correctness. I've tested the processor and it works properly with your changes.
PR looks good to me.

Thanks for the review and testing @mark-bathori!

+1 LGTM, thanks for the improvments and review! Merging to main


Receiver group. Add/edit receiver group - adding external Members，User nicknames can be in Chinese and English as well as numbers

新增/编辑消息组 - 添加外部成员，用户昵称应支持  中文，英文和数字；

@wuweilai

Demand auth adjustment

与Auth的需求保持一致


[shared engine][android] App crashes when opening two platform view pages one after another  in hybrid composition mode

  public void onDisplayOverlaySurface(int id, int x, int y, int width, int height) {
    if (overlayLayerViews.get(id) == null) {
      throw new IllegalStateException("The overlay surface (id:" + id + ") doesn't exist");   ////// crash!
    }
    initializeRootImageViewIfNeeded();

    final FlutterImageView overlayView = overlayLayerViews.get(id);
    if (overlayView.getParent() == null) {
      ((FlutterView) flutterView).addView(overlayView);
    }

    ......
  }

Crash logs as shown below:
[  +37 ms] E/flutter (32221): [ERROR:flutter/fml/platform/android/jni_util.cc(182)] java.lang.IllegalStateException: The overlay surface (id:0) doesn't
exist
[        ] E/flutter (32221): 	at io.flutter.plugin.platform.PlatformViewsController.onDisplayOverlaySurface(PlatformViewsController.java:826)
[        ] E/flutter (32221): 	at io.flutter.embedding.engine.FlutterJNI.onDisplayOverlaySurface(FlutterJNI.java:1014)
[        ] E/flutter (32221): 	at android.os.MessageQueue.nativePollOnce(Native Method)
[        ] E/flutter (32221): 	at android.os.MessageQueue.next(MessageQueue.java:336)
[        ] E/flutter (32221): 	at android.os.Looper.loop(Looper.java:174)
[        ] E/flutter (32221): 	at android.app.ActivityThread.main(ActivityThread.java:7707)
[        ] E/flutter (32221): 	at java.lang.reflect.Method.invoke(Native Method)
[        ] E/flutter (32221): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
[        ] E/flutter (32221): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
[        ] E/flutter (32221):
[        ] F/flutter (32221): [FATAL:flutter/shell/platform/android/platform_view_android_jni_impl.cc(1443)] Check failed: fml::jni::CheckException(env).

Steps to Reproduce

Get flutterBoost example code.

git clone -b task/platform_view_issue_89408 https://github.com/0xZOne/flutter_boost_zero.git

Enable hybrid composition ( webview_flutter_demo.dart)

class WebViewExampleState extends State<WebViewExample> {
  @override
  void initState() {
    super.initState();
    // Enable hybrid composition.
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

Run the example, and follow the steps below:

Logs

[  +37 ms] E/flutter (32221): [ERROR:flutter/fml/platform/android/jni_util.cc(182)] java.lang.IllegalStateException: The overlay surface (id:0) doesn't
exist
[        ] E/flutter (32221): 	at io.flutter.plugin.platform.PlatformViewsController.onDisplayOverlaySurface(PlatformViewsController.java:826)
[        ] E/flutter (32221): 	at io.flutter.embedding.engine.FlutterJNI.onDisplayOverlaySurface(FlutterJNI.java:1014)
[        ] E/flutter (32221): 	at android.os.MessageQueue.nativePollOnce(Native Method)
[        ] E/flutter (32221): 	at android.os.MessageQueue.next(MessageQueue.java:336)
[        ] E/flutter (32221): 	at android.os.Looper.loop(Looper.java:174)
[        ] E/flutter (32221): 	at android.app.ActivityThread.main(ActivityThread.java:7707)
[        ] E/flutter (32221): 	at java.lang.reflect.Method.invoke(Native Method)
[        ] E/flutter (32221): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
[        ] E/flutter (32221): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
[        ] E/flutter (32221):
[        ] F/flutter (32221): [FATAL:flutter/shell/platform/android/platform_view_android_jni_impl.cc(1443)] Check failed: fml::jni::CheckException(env).
[ +206 ms] F/libc    (32221): Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 32221 (erboost.example), pid 32221 (erboost.example)
[  +81 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
[        ] Build fingerprint: 'OnePlus/OnePlus8_CH/OnePlus8:10/QKQ1.191222.002/2007160559:user/release-keys'
[        ] Revision: '0'
[        ] ABI: 'arm64'
[        ] Timestamp: 2021-09-03 10:06:57+0800
[        ] pid: 32221, tid: 32221, name: erboost.example  >>> com.idlefish.flutterboost.example <<<
[        ] uid: 11522
[        ] signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
[        ] Abort message: '[FATAL:flutter/shell/platform/android/platform_view_android_jni_impl.cc(1443)] Check failed: fml::jni::CheckException(env).
[        ] '
[        ]     x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>007ddd  x2<PHONE_NUMBER>000006  x3  0000007fc68aec20
[        ]     x4<PHONE_NUMBER>000000  x5<PHONE_NUMBER>000000  x6<PHONE_NUMBER>000000  x7<PHONE_NUMBER>800000
[        ]     x8<PHONE_NUMBER>0000f0  x9  968ae646b7c638b6  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000000
[        ]     x12 fffffff0fffffbdf  x13<PHONE_NUMBER>000003  x14<PHONE_NUMBER>000001  x15 0000295c2cea66e7
[        ]     x16 0000007d9a7568c0  x17 0000007d9a732910  x18 0000007d9f55a000  x19<PHONE_NUMBER>007ddd
[        ]     x20<PHONE_NUMBER>007ddd  x21 00000000ffffffff  x22 0000007cfe425fb0  x23 0000007cfe425f98
[        ]     x24<PHONE_NUMBER>000035  x25 0000007d9e4c9020  x26<PHONE_NUMBER>000005  x27<PHONE_NUMBER>00007b
[        ]     x28<PHONE_NUMBER>000001  x29 0000007fc68aecc0
[        ]     sp  0000007fc68aec00  lr  0000007d9a6e40c4  pc  0000007d9a6e40f0
[        ] backtrace:
[        ]       #00 pc<PHONE_NUMBER>0830f0  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 4d97d05dd46bc5007e4bcec693d32111)
[        ]       #01 pc<PHONE_NUMBER>b33e38  /data/app/com.idlefish.flutterboost.example-H9MHRNs17CCpODAmEaXbGA==/lib/arm64/libflutter.so (BuildId:
6eaefa90204bdde0e9f3a1109c836feb7983820c)
[        ]       #02 pc<PHONE_NUMBER>bca764  /data/app/com.idlefish.flutterboost.example-H9MHRNs17CCpODAmEaXbGA==/lib/arm64/libflutter.so (BuildId:
6eaefa90204bdde0e9f3a1109c836feb7983820c)
[        ]       #03 pc<PHONE_NUMBER>b56ea0  /data/app/com.idlefish.flutterboost.example-H9MHRNs17CCpODAmEaXbGA==/lib/arm64/libflutter.so (BuildId:
6eaefa90204bdde0e9f3a1109c836feb7983820c)

[✓] Flutter (Channel master, 2.6.0-1.0.pre.168, on macOS 11.5.2 20G95 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.6.0-1.0.pre.168 at /Users/zero/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision de3e218e48 (3 hours ago), 2021-09-02 18:51:02 -0400
    • Engine revision c02b815416
    • Dart version 2.15.0 (build 2.15.0-69.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/zero/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_SDK_ROOT = /Users/zero/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.5.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] VS Code (version 1.59.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • GM1910 (mobile)            • <IP_ADDRESS>:24005                 • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro Max (mobile) • 092079B9-9A76-4812-BD1E-B9C7B692C734 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

Hi @0xZOne
I just see a blank screen transition then it returns to the page on the current latest beta
https://user-images.githubusercontent.com/48603081/132229823-3cd8f7b6-2530-44f2-a53b-77b6bfc4256c.mp4

flutter doctor -v
[✓] Flutter (Channel beta, 2.5.0-5.3.pre, on Microsoft Windows [Version 10.0.22000.176], locale en-US)
    • Flutter version 2.5.0-5.3.pre at C:\Users\Taha\Code\flutter_beta
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a7fb06d6fa (4 days ago), 2021-09-02 09:07:14 -0700
    • Engine revision fcde2c8b2f
    • Dart version 2.14.0 (build 2.14.0-377.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\Taha\Code\android-sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = C:\Users\Taha\Code\android-sdk
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.31624.102
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.60.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.26.0

[✓] Connected device (4 available)
    • IN2011 (mobile)   • c9d8ee0c • android-arm64  • Android 11 (API 30)
    • Windows (desktop) • windows  • windows-x64    • Microsoft Windows [Version 10.0.22000.176]
    • Chrome (web)      • chrome   • web-javascript • Google Chrome 93.0.4577.63
    • Edge (web)        • edge     • web-javascript • Microsoft Edge 92.0.902.84

• No issues found!

On the last master, the flutter page is just blank
https://user-images.githubusercontent.com/48603081/132230709-3ae13237-cabf-4099-b87f-7df6f51b2c9b.mp4

flutter doctor -v
[✓] Flutter (Channel master, 2.6.0-1.0.pre.193, on Microsoft Windows [Version 10.0.22000.176], locale en-US)
    • Flutter version 2.6.0-1.0.pre.193 at C:\Users\Taha\Code\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0c5431d99c (12 hours ago), 2021-09-05 22:31:02 -0400
    • Engine revision b9c633900e
    • Dart version 2.15.0 (build 2.15.0-82.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\Taha\Code\android-sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = C:\Users\Taha\Code\android-sdk
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.31624.102
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.60.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.26.0

[✓] Connected device (5 available)
    • IN2011 (mobile)         • c9d8ee0c • android-arm64   • Android 11 (API 30)
    • Windows (desktop)       • windows  • windows-x64     • Microsoft Windows [Version 10.0.22000.176]
    • Windows (UWP) (desktop) • winuwp   • windows-uwp-x64 •
    • Chrome (web)            • chrome   • web-javascript  • Google Chrome 93.0.4577.63
    • Edge (web)              • edge     • web-javascript  • Microsoft Edge 92.0.902.84

• No issues found!

@TahaTesser
I can still reproduce the issue on the last master following the reported steps.

https://user-images.githubusercontent.com/26625149/132272050-5e211e3a-6bd3-45c2-9798-05a68620bd03.mp4

flutter doctor -v
```
[✓] Flutter (Channel master, 2.6.0-1.0.pre.193, on macOS 11.5.2 20G95 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.6.0-1.0.pre.193 at /Users/zero/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0c5431d99c (23 hours ago), 2021-09-05 22:31:02 -0400
    • Engine revision b9c633900e
    • Dart version 2.15.0 (build 2.15.0-82.0.dev)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
• Android SDK at /Users/zero/Library/Android/sdk
• Platform android-31, build-tools 31.0.0
• ANDROID_HOME = /Users/zero/Library/Android/sdk
• ANDROID_SDK_ROOT = /Users/zero/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 12.5.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
[✓] VS Code (version 1.59.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• LE2110 (mobile)            • <IP_ADDRESS>:24083                 • android-arm64  • Android 11 (API 30)
• iPhone 12 Pro Max (mobile) • 092079B9-9A76-4812-BD1E-B9C7B692C734 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
• Chrome (web)               • chrome                               • web-javascript • Google Chrome 93.0.4577.63
• No issues found!
</details>

Hi @0xZOne
I just upgraded to a newer master today, I can reproduce the issue, maybe something was wrong on the master channel yesterday.

flutter doctor -v
[✓] Flutter (Channel master, 2.6.0-1.0.pre.193, on macOS 12.0 21A5506j darwin-x64, locale en-GB)
    • Flutter version 2.6.0-1.0.pre.193 at /Users/tahatesser/Code/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0c5431d99c (29 hours ago), 2021-09-05 22:31:02 -0400
    • Engine revision b9c633900e
    • Dart version 2.15.0 (build 2.15.0-82.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-31, build-tools 30.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7621141/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7621141/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.60.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (3 available)
    • IN2011 (mobile) • c9d8ee0c • android-arm64  • Android 11 (API 30)
    • macOS (desktop) • macos    • darwin-x64     • macOS 12.0 21A5506j darwin-x64
    • Chrome (web)    • chrome   • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

cc @blasten


Uncaught TypeError: Type is not a constructor

[Enter steps to reproduce below:]

...
...

The same error happened in my Atom.


JUnit dependency in runtime classpath

implementation(kotlin("test-junit")) should be applied to test configuration rather than main.
https://github.com/touchlab/Kermit/blob/main/kermit/build.gradle.kts#L100C17-L100C53

Duplicates of #383.
@kpgalligan Is there a reason the main source-set depends on JUnit?
This is blocking us from moving to 2.0 version.

This is a long running issue, we have an exclude rule in our dependency specification for this, it causes our gradle build and tests to fail.
FYI this is our exlude statement:
implementation("co.touchlab:kermit:2.0.2") {
    exclude(group = "org.jetbrains.kotlin", module = "kotlin-test-junit")
}

Fixed in version 2.0.3


Running the tool with a fake/wrong path in the config.json does not result in an error

Description:
When running the tool with a with a fake/wrong path in the config.json does not result in an error
This could happen by mistake and it is very unlikely to go unnoticed. Nevertheless, if it happens, it might be seen as undesireable behaviour because the user might assume that its data is being anonymized, while it is not.
Desired outcome
Throw an AnonymizerConfigurationException error informing that the path is not valid.
Reproduction steps:
Edit the tool's configuration-sample.json file and purposefuly set a non supported anonymization method:
{"path": "Resource.id-MISTAKE", "method": "cryptoHash"}.
Run the tool in Windows as it follows:
Microsoft.Health.Fhir.Anonymizer.R4.CommandLineTool.exe -i "C:\Tool\FHIR\samples\fhir-r4-files" -o "C:\Tool\FHIR\samples\fhir-r4-files\output" -c "C:\Tool\configuration-sample.json"
You'll see: Finished processing 'C:\Tool\FHIR\samples\fhir-r4-files'! no error is thrown. And the user might not notice that Resource.id was not cryptoHashed.

@sowu880 is this resolved and can the bug be closed?

Hi,
For now, we don't support validate pattern of the path. We can add this feature in the future, and also welcome to contribute to our project.
Thanks,
Songrui.


@AutoConfigureStubRunner does not work with Spring Reactive Loadbalancer

Describe the bug
Using ribbon for contract tests works fine, using the Spring Reactive Loadbalancer results in contract tests returning 503 with errror "unable to find instance for <serviceId>"
Sample
Example: https://github.com/hughwphamill/spring-contract-test-issue

I should say, this is with Spring Boot 2.2.5, and Spring Cloud Hoxton.SR3 and 2.0.1.RELEASE of the Spring Cloud Contract Maven Plugin

Have verified it. In fact, in the case of Ribbon implementation, there are custom implementations of DiscoveryClient and Ribbon ServerList that make it possible to use stub instances from StubRunner during load-balancing.
We need to add implementation that will provide feature parity for SC LoadBalancer.

Could you please check the latest snapshots and confirm that the issue got resolved?

Stupid question, but is that 2.2.3-SNAPSHOT as referenced on https://spring.io/projects/spring-cloud-gateway#learn ?

 I did that with your sample and it worked fine for me but getting a second pair of :eyes: is always much appreciated ;)

Will do, and I'll let you know, thanks for the quick turnaround, I love this project!

@marcingrzejszczak I updated to 2.2.3.BUILD-SNAPSHOT and Hoxton.BUILD-SNAPSHOT and can confirm the issue is resolved, thank you!

Great to hear!


Protein IndexError: list index out of range

Command: compleasm.py protein -p Minous.pep.fa  -l mammalia  -t 50 -o minous -L /home/106public/software/compleasm/mb_downloads
Searching for hmmsearch in the path where compleasm.py is located
Searching for hmmsearch in the current execution path
Searching for hmmsearch in $PATH
Traceback (most recent call last):
File "/home/106public/software/compleasm/compleasm.py", line 2715, in
main()
File "/home/106public/software/compleasm/compleasm.py", line 2711, in main
args.func(args)
File "/home/106public/software/compleasm/compleasm.py", line 2512, in protein_fun
pr.run()
File "/home/106public/software/compleasm/compleasm.py", line 2276, in run
query_name = line[3]
IndexError: list index out of range

I meet this problems several times, and what will cause this?

Hi,
The problem seems to occur during the parsing of the hmmsearch output. Please run the script I provided using python compleasm.py to identify which hmmsearch output file is problematic, and then display the contents of that file here.
compleasm_Issue40.zip

Hi  I used the compleasm.py in your zip and this time found no error!

here is the log
Searching for hmmsearch in the path where compleasm.py is located
Searching for hmmsearch in the current execution path
Searching for hmmsearch in $PATH
S:89.50%, 8257
D:4.70%, 434
F:2.58%, 238
M:3.22%, 297
N:9226


warning in running watchlist that ticker and function were mixed up

I just downloaded this so must be latest version.
line 181
# KJH change
#df = self.ds.data(ticker, tf)
df = self.ds.data(tf,ticker)
# end of KJH change
I made the above change and I stopped getting the warning

Hello @karenjh2,
What version are you running of Pandas TA (as asked on the Bug Report)?
This installs the latest version which normally solves most Issues. (Also requested to do in the Bug Report)
$ pip install -U git+https://github.com/twopirllc/pandas-ta

If your upgrade does not solve the Issue, please let me know.
Kind Regards,
KJ

I downloaded pandas-ta this morning, as I mentioned on one of the bug reports. I doubt there has been a version update since then. So it is the latest version.
Karen Higgins
From: Kevin Johnson<EMAIL_ADDRESS>Sent: Tuesday, February 9, 2021 9:24 AM
To: twopirllc/pandas-ta<EMAIL_ADDRESS>Cc: karenjh2<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [twopirllc/pandas-ta] warning in running watchlist that ticker and function were mixed up (#220)
Hello @karenjh2 https://github.com/karenjh2 ,
What version are you running of Pandas TA (as asked on the Bug Report)?
This installs the latest version which normally solves most Issues. (Also requested to do in the Bug Report)
$ pip install -U git+https://github.com/twopirllc/pandas-ta
If your upgrade does not solve the Issue, please let me know.
Kind Regards,
KJ
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/twopirllc/pandas-ta/issues/220#issuecomment-775530942 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ALFQFQFPHOCP5KBIB2ASSZLS6BXCBANCNFSM4XJXSMPA .  https://github.com/notifications/beacon/ALFQFQDXUNFENGKPJQLGVXDS6BXCBA5CNFSM4XJXSMPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFY42TPQ.gif

I downloaded pandas-ta this morning, as I mentioned on one of the bug reports. I doubt there has been a version update since then. So it is the latest version.
Karen Higgins
From: Kevin Johnson<EMAIL_ADDRESS>Sent: Tuesday, February 9, 2021 9:24 AM
To: twopirllc/pandas-ta<EMAIL_ADDRESS>Cc: karenjh2<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [twopirllc/pandas-ta] warning in running watchlist that ticker and function were mixed up (#220)
Hello @karenjh2 https://github.com/karenjh2 ,
What version are you running of Pandas TA (as asked on the Bug Report)?
This installs the latest version which normally solves most Issues. (Also requested to do in the Bug Report)
$ pip install -U git+https://github.com/twopirllc/pandas-ta
If your upgrade does not solve the Issue, please let me know.
Kind Regards,
KJ
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/twopirllc/pandas-ta/issues/220#issuecomment-775530942 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ALFQFQFPHOCP5KBIB2ASSZLS6BXCBANCNFSM4XJXSMPA .  https://github.com/notifications/beacon/ALFQFQDXUNFENGKPJQLGVXDS6BXCBA5CNFSM4XJXSMPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFY42TPQ.gif

Hello @karenjh2,
If you could simply print the version and let me know, then I can be of more assistance. All you have to do is:
import pandas_ta as ta
print(ta.version)

I downloaded pandas-ta this morning, as I mentioned on one of the bug reports. I doubt there has been a version update since then. So it is the latest version.

How did you download it? Saying you downloaded it this morning does not imply how you downloaded it. Which one you install determines which version you are on.
The Last stable version (pypi): 0.2.23b
The Lastest version (GitHub): 0.2.42b

As noted on the README:

Kind Regards,
KJ

0.2.23b0
Karen Higgins
From: Kevin Johnson<EMAIL_ADDRESS>Sent: Tuesday, February 9, 2021 11:32 AM
To: twopirllc/pandas-ta<EMAIL_ADDRESS>Cc: karenjh2<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [twopirllc/pandas-ta] warning in running watchlist that ticker and function were mixed up (#220)
Hello @karenjh2 https://github.com/karenjh2 ,
If you could simply print the version and let me know, then I can be of more assistance. All you have to do is:
import pandas_ta as ta
print(ta.version)
I downloaded pandas-ta this morning, as I mentioned on one of the bug reports. I doubt there has been a version update since then. So it is the latest version.
How did you download it? Saying you downloaded it this morning does not imply how you downloaded it. Which one you install determines which version you are on.
The Last stable version (pypi): 0.2.23b
The Lastest version (GitHub): 0.2.42b
As noted on the README:
https://user-images.githubusercontent.com/18198392/107302801-cde24800-6a32-11eb-9925-976f5d0ce2f1.png
Kind Regards,
KJ
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/twopirllc/pandas-ta/issues/220#issuecomment-775586313 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ALFQFQDHG2RBJ2RVYOGA56LS6CGALANCNFSM4XJXSMPA .  https://github.com/notifications/beacon/ALFQFQHZYJJQYD2S3E5BJXDS6CGALA5CNFSM4XJXSMPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFY5IECI.gif

Great! Please use the Latest versions moving forward.
$ pip install -U git+https://github.com/twopirllc/pandas-ta

Thanks,
KJ


add a whitespace in output of 'Selected packages'

previously: [-] Selected packages: mirage-console-xenmirage-console-unix mirage-console-xen-backendmirage-consolemirage-console-xen-proto
the effect of this PR should be: [-] Selected packages: mirage-console-xen mirage-console-unix mirage-console-xen-backend mirage-console mirage-console-xen-proto


C-like: Simplified function

This PR simplifies the function pattern of the C-like language.
/[a-z0-9_]/i == /\w/

I suppose this is a nit, but wouldn't my-function() also get caught by this?

No, \w is equal to [a-zA-Z0-9_]. - is not included.


ROCm stack and AMDGPU Driver

Hi.  However, please excuse me since I am a linux and AMD newbie.
I am mainly switching to Linux for using my Vega 64 for deep learning frameworks. This requires the ROCm stack to be installed. Well, I play games too. Should I (or even can I) install AMDGPU drivers too? If not, are they at the same performance level?
Please have a nice day.

Could you describe what you mean by "AMDGPU drivers"? The open source Linux amdgpu driver is used as the basis of the ROCm software stack. However, the AMDGPU-PRO drivers that AMD releases (which include a amdgpu and some closed-source components). At the moment, I believe that the ROCm user-land code does not support the drivers included in AMDGPU-PRO, so you shouldn't use them together.

Hi @furkan-kucuk I've recently just been running the latest mesa stack atop of linux kernel 4.18.x amdgpu as well as ROCm's OpenCL is also still working in places that it did before on kernel 4.15.x + the ROCm DKMS driver combo. For games I am using RADV which is the Mesa Vulkan stack and Steam+Proton works perfect with Doom2016/GTA5.
Cheers. This is Ubuntu 18.04 still but using an unsupported kernel from upstream via Ukuu.

Indeed, as @boberfly mentions, if you're using an upstream 4.18, 4.19, or 4.20 kernel, you should be able to use the ROCm user-level software without needing to install the rock-dkms package. See this part of our README for a comparison if upstream drivers vs. the rock-dkms package.
If you want to use the upstream drivers that are part of a new kernel, then this section of our README explains how to install the ROCm user-level tools.
Note that you will still need to add your main users into the video group, as per these directions.
You can read these directions to figure out which packages you want to install.


Voting rankings not working with Me_MuOnline database structure

Voting rankings cron task retrieves the information from MuOnline only.

This was actually fixed in the 1.0.6 patch.


https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di

Describe the bug
https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-4sh1di
Steps to reproduce
https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di
Expected behavior
https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di
Screen Recording / Screenshot
https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di
Platform
Browser name = Safari
Full version = 18.1.1
Major version = 18
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1.1 Safari/605.1.15
performance.memory = undefined
Username = krisgnyc
Chat ID = ee71fa8fe700

Additional context
https://stackblitz.com/~/github.com/krisgnyc/sb1-4sh1di

Bolt works best in Chrome and Chromium browsers.


Table/database that is private due to inherited permissions does not show padlock

I noticed that a table page that is private because the database or instance is private, e.g. this one:

Is not displaying the padlock icon that indicates the table is not visible to the public.

Same issue for the database page too, which in this case is private due to view-instance.

Here's the relevant code from the table page:
https://github.com/simonw/datasette/blob/4218c9cd742b79b1e3cb80878e42b7e39d16ded2/datasette/views/table.py#L215-L227
Note how ensure_permissions() there takes the table, database and instance into account... but the private assignment  (used to decide if the padlock should display or not) only considers the view-table check.
Here's the same code for the database page:
https://github.com/simonw/datasette/blob/4218c9cd742b79b1e3cb80878e42b7e39d16ded2/datasette/views/database.py#L139-L141
And for canned query pages:
https://github.com/simonw/datasette/blob/4218c9cd742b79b1e3cb80878e42b7e39d16ded2/datasette/views/database.py#L228-L240

There's also a check_visibility() helper which I'm not using in these particular cases but which may be relevant. It's called like this:
https://github.com/simonw/datasette/blob/4218c9cd742b79b1e3cb80878e42b7e39d16ded2/datasette/views/database.py#L65-L77
And is defined here: https://github.com/simonw/datasette/blob/4218c9cd742b79b1e3cb80878e42b7e39d16ded2/datasette/app.py#L694-L710

I think check_visibility should be changed to optionally accept the same list of tuples that can be passed to ensure_permissions.

I'll finish this in a PR:

https://github.com/simonw/datasette/pull/1842

Useful test: if you sign in as root to https://latest.datasette.io/_internal/columns/_internal,columns,database_name you can see there's no padlock icon on that page or on https://latest.datasette.io/_internal/columns - fixing this bug should fix that.

Updated docs for check_visibility(): https://docs.datasette.io/en/latest/internals.html#await-check-visibility-actor-action-none-resource-none-permissions-none

Visit https://latest.datasette.io/login-as-root and then:
https://latest.datasette.io/

https://latest.datasette.io/_internal/columns

https://latest.datasette.io/_internal/columns/_internal,columns,cid

That's all as it should be.


UML-1110 - Count LPAs in each account for analysis purposes

Purpose
As a user researcher,
I want to know how many cases have how many LPAs
Where results are a count of cases grouped by LPA count
so that user behaviour can be better understood
Fixes UML-1110
Approach
Paginate UserLpaActorMap table
List UserIds
Use Pandas to group and count UserId series
Learning
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#paginators
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.value_counts.html
https://pandas.pydata.org/docs/user_guide/10min.html
Checklist

[ ] I have performed a self-review of my own code
[ ] I have added relevant logging with appropriate levels to my code
[ ] I have updated documentation (Confluence/GitHub wiki/tech debt doc) where relevant
[ ] I have added tests to prove my work
[ ] I have added welsh translation tags and updated translation files
[ ] I have run an accessibility tool on any pages I have made changes to and fixed any issues found
[ ] The product team have tested these changes

counting lpas per account...
Maps processed:  10000
Maps processed:  20000
Maps processed:  30000
Maps processed:  40000
Maps processed:  50000
Maps processed:  60000
Maps processed:  70000
Maps processed:  80000
Maps processed:  90000
Maps processed:  100000
1     23216
2     21366
4      7148
3      1636
6       242
5       153
8       122
7        37
10        9
12        8
9         5
16        2
11        1
14        1
20        1
dtype: int64
4.81s user 0.64s system 29% cpu 18.338s total```


Fix haxecpp travis

Yep. memcpy was my fault. And that is very likely the cause of random failures in travis.
https://github.com/jtransc/jtransc/blob/0c443d30af60f1fde4f95a8ec98ceaa909e5f66b/jtransc-rt/resources/hx/N.hx#L554
Replaced to memmove

Great work! Unreal for my mind =)


cdk virtual scrolling working abnormally on mat-tab-group

Bug, feature request, or proposal:

cdk virtual scrolling position calculation error on mat-tab-group.  If the virtual scroll component is not the first tab, put it second tab or later, the content positions are not correct at all.
The second tab use the virtual scrolling, then can see the issue clearly.
scroll content up/down by using arrow keys, it stop to scroll at some point.

What is the expected behavior?

To calculate the positioning of the contents of correctly.
up/down arrow keys, can scroll correctly without stopping at some point.

What is the current behavior?
content position got weird.
What are the steps to reproduce?
https://stackblitz.com/edit/angular7-virtual-scroll-issue?file=src%2Fapp%2Fapp.component.html
https://github.com/rodent129/angular7-virtual-scroll
What is the use-case or motivation for changing an existing behavior?
If not changed, then cannot use virtual scrolling
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular - 7.0.2
Material - 7.0.2
TypeScript - 3.1.6
Browser - Chrome 70.0.3538.77
OS - Mac high Sierra
Is there anything else we should know?

It looks like it works if I switch the order of the tabs: https://stackblitz.com/edit/angular7-virtual-scroll-issue-tf6mdz?file=src/app/app.component.html
I think what's happening is that it's calculating the height of the viewport when the tab is still hidden and then caching it and never updating it even once the viewport is shown. I do have an open feature request for adding support this: https://github.com/angular/material2/issues/10117


make top navbar more colourful

hi @anjalit03  , could u please assign this issue to me

@mr-panther01 will you be working on this or can I assign this to @ZeeshanMukhtar1 ? please respond asap

Yes I will work on this

@ZeeshanMukhtar1 the issue is assigned to the person who proposed it please create new issue you'd like to work on :)

Can you also add hacktoberfest label

why it is looking different when I am opening it from my folder and also changes are not visible when I am changing the code in it

its the old navbar maybe the code is not updated can you try to fork it again and try then.....

Ok I will try it again


Draw with pen without curves

Is there a way to draw with pen without make curves but only a straight line (ex. pressing shift while drawing)?
If not, it could be a good thing to make, for a more advanced and accurate editing!

Right now there's no way of doing that, but it would be a nice feature once I revamp the editor.


Update single-offer-sale example for SDK v0.8.4

What
Update single-offer-sale example for SDK v0.8.4
Why
Preparing for release.

Preview is available here:http://soroban-docs-pr433.previews.kube001.services.stellar-ops.com/


Show StatefulSet, Deployment, Pod is ready/not ready wieh install/upgrade by custom hand

Output of helm version:
v3.11.2
Output of kubectl version:
v1.21.14
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Yandex
When run helm by
helm upgrade --install --wait --debug

Get output
ready.go:402: [debug] StatefulSet is ready: loki/loki-loki-distributed-ingester. 1 out of 1 expected pods are ready

Could add custom hand for progress StatefulSet, Deployment, Pod.
And show ready and not ready StatefulSet, Deployment, Pod.
ready.go:402: [debug] StatefulSet is ready: loki/loki-loki-distributed-ingester. 1 out of 1 expected pods are ready

Thanks!

I'm unsure what is being asked. Is the second output/code block meant to show an example? It (currently) shows the same output as the first block.

rewrite my proposal:
Could add option for example --ready for show ready with install/upgrade
ready.go:402: [debug] StatefulSet is ready: loki/loki-loki-distributed-ingester. 1 out of 1 expected pods are ready

From my understanding thats what the --wait is supposed to do, without the --wait we will not wait for resources to be Ready.

--wait not show ready/not ready resources.
My proposal about show ready/not ready resources.

I still don't get this. The description has two identical output lines. Please restate the issue. Show what exists now and what you wish existed. Explain the difference.


Repaired handling of temporary views in Sublime Text 3

As noted in #62, there is an issue in ST3 where attempting to use "Terminal: Open" or "Terminal: Open in project folder" fails to work when no files are open.
This is being caused by ST3 always having an active view (i.e. a temporary view so you can start typing at any time). As a result, when we resolve the file name of this active view, we get None:
>>> str(view.file_name())
'None'

We were exiting early with this None when we really want to skip to the next elif in our path resolver. This PR fixes that. In this PR:

Updated elif for active view's file name to require a file name

/cc @wbond

@wbond probably doesn't need to see this so I am going to land it now.


Update fixes

A few things went wrong when I tried to update slacktalker with a fresh Slack export. This makes them go right.
The crontab was missing -o for unzip, which was fine for the uniquely named channel files, but not for users.json.
I had ctrl+c'd a manual parsing run while debugging, which screwed everything up until I added a session.rollback() as the exception suggested.
And I noticed an extra space was being included whenever saucy was given the sentence's beginning word. Also fixed.

hey :wave: @saucyallison  Keep on rocking \o/

saucy resurrect classam butts

reported in #hrviolations

Wasn't expecting an audience! Miss you guys. ❤


RDKB-000 : RawData Direct mode

Reason for change: RawData Direct mode
Test Procedure: Test and verified with rbuscli and testapp
Risks: High
Priority: P1
Signed-off-by: Gururaaja ESR<EMAIL_ADDRESS>

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 1 file pending identification.

Protex Server Path: /home/blackduck/github/rbus/173/rdkcentral/rbus

Commit: 75b386d2a2ae122a38f16387ad11639b7e0e187e

Report detail: gist

WARNING: A Blackduck scan failure has been waived
A prior failure has been upvoted

Upvote reason: Not a problem

Commit: 75b386d2a2ae122a38f16387ad11639b7e0e187e

Changes are done as part of latest code base to avoid merge conflict


Unhelpful return code for IntervalNonlinearProblem

Trying to solve the following IntervalNonlinearProblem:
f(t,p) = sin(t) - 10.0
prob = IntervalNonlinearProblem(f, [0.0, 2pi])
sol = solve(prob, ITP())

gives a FloatingPointLimit return code and the solution as 0.0. Which according to the docs (https://docs.sciml.ai/SciMLBase/stable/interfaces/Solutions/#retcodes) means a successful solve:

ReturnCode.FloatingPointLimit
The success state of the solver. If this return code is given, then the solving process was successful, and the closest floating point value to the solution was given.

Given this equation cannot be solved this return code doesn't seem appropiate. It also feels like the "closest floating point value to the solution" should be pi/2 rather than 0.0.
On Julia 1.10.4 and:
(jl_ajmNJc) pkg> st
Status `/tmp/jl_ajmNJc/Project.toml`
  [8913a72c] NonlinearSolve v3.13.1

it should probably be an initialfailure since I think intervalproblem requires opposite signs on the boundary

Yes, it should give an initial failure with a warning about not being an enclosing interval.


[Feature Request] jSerialComm

Checklist

[X] I searched exising issues and no one else requests similar feature.
[X] I think that 25%+ users are positive towards this feature.

Describe the feature
todo
Additional context
No response

串口通信
类似jssc

https://www.cnblogs.com/zqdf/p/15882907.html

https://blog.csdn.net/gitblog_01122/article/details/141008519


Update index.html.twig

badge colors

:tada: This PR is included in version 0.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Verify Intel intrinsics against upstream definitions

This commit adds a new crate for testing that the intrinsics listed in this
crate do indeed match the upstream definition of each intrinsic. A
pre-downloaded XML description of all Intel intrinsics is checked in which is
then parsed in the stdsimd-verify crate to verify that everything we write
down is matched against the upstream definitions.
Currently the checks are pretty loose to get this compiling but a few intrinsics
were fixed as a result of this. For example:

_mm256_extract_epi8 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi16 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi32 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi64 - AVX2 intrinsic erroneously listed under AVX
_mm_tzcnt_32 - erroneously had u32 in the name
_mm_tzcnt_64 - erroneously had u64 in the name
_mm_cvtsi64_si128 - erroneously available on 32-bit platforms
_mm_cvtsi64x_si128 - erroneously available on 32-bit platforms
_mm_cvtsi128_si64 - erroneously available on 32-bit platforms
_mm_cvtsi128_si64x - erroneously available on 32-bit platforms
_mm_extract_epi64 - erroneously available on 32-bit platforms
_mm_insert_epi64 - erroneously available on 32-bit platforms
_mm256_extract_epi16 - erroneously returned i32 instead of i16
_mm256_extract_epi8 - erroneously returned i32 instead of i8
_mm_shuffle_ps - the mask argument was erroneously i32 instead of u32
_popcnt32 - the signededness of the argument and return were flipped
_popcnt64 - the signededness of the argument was flipped and the argument
was too large bit-wise
_mm_tzcnt_32 - the return value's sign was flipped
_mm_tzcnt_64 - the return value's sign was flipped
A good number of intrinsics used imm8: i8 or imm8: u8 instead of imm8: i32 which Intel was using. (we were also internally inconsistent)
A number of intrinsics working with __m64 were instead working with i64/u64,
so they're now corrected to operate with the vector types instead.

Currently the verifications performed are:

Each name in Rust is defined in the XML document
The arguments/return values all agree.
The CPUID features listed in the XML document are all enabled in Rust as well.

The type matching right now is pretty loose and has a lot of questionable
changes. Future commits will touch these up to be more strict and require closer
adherence with Intel's own types. Otherwise types like i32x8 (or any integers
with 256 bits) all match up to __m256i right now, althoguh this may want to
change in the future.
Finally we're also not testing the instruction listed in the XML right now.
There's a huge number of discrepancies between the instruction listed in the XML
and the instruction listed in assert_instr, and those'll need to be taken care
of in a future commit.
Closes #240

I’ll take a look at this tomorrow
On Fri 22. Dec 2017 at 21:58, Alex Crichton<EMAIL_ADDRESS>wrote:

This commit adds a new crate for testing that the intrinsics listed in this
crate do indeed match the upstream definition of each intrinsic. A
pre-downloaded XML description of all Intel intrinsics is checked in which
is
then parsed in the stdsimd-verify crate to verify that everything we write
down is matched against the upstream definitions.
Currently the checks are pretty loose to get this compiling but a few
intrinsics
were fixed as a result of this. For example:

_mm256_extract_epi8 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi16 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi32 - AVX2 intrinsic erroneously listed under AVX
_mm256_extract_epi64 - AVX2 intrinsic erroneously listed under AVX
_mm_tzcnt_32 - erroneously had u32 in the name
_mm_tzcnt_64 - erroneously had u64 in the name
_mm_cvtsi64_si128 - erroneously available on 32-bit platforms
_mm_cvtsi64x_si128 - erroneously available on 32-bit platforms
_mm_cvtsi128_si64 - erroneously available on 32-bit platforms
_mm_cvtsi128_si64x - erroneously available on 32-bit platforms
_mm_extract_epi64 - erroneously available on 32-bit platforms
_mm_insert_epi64 - erroneously available on 32-bit platforms
_mm256_extract_epi16 - erroneously returned i32 instead of i16
_mm256_extract_epi8 - erroneously returned i32 instead of i8
_mm_shuffle_ps - the mask argument was erroneously i32 instead of u32
_popcnt32 - the signededness of the argument and return were flipped
_popcnt64 - the signededness of the argument was flipped and the
argument
was too large bit-wise
_mm_tzcnt_32 - the return value's sign was flipped
_mm_tzcnt_64 - the return value's sign was flipped
A good number of intrinsics used imm8: i8 or imm8: u8 instead of imm8:
i32 which Intel was using. (we were also internally inconsistent)
A number of intrinsics working with __m64 were instead working with
i64/u64,
so they're now corrected to operate with the vector types instead.

Currently the verifications performed are:

Each name in Rust is defined in the XML document
The arguments/return values all agree.
The CPUID features listed in the XML document are all enabled in
Rust as well.

The type matching right now is pretty loose and has a lot of questionable
changes. Future commits will touch these up to be more strict and require
closer
adherence with Intel's own types. Otherwise types like i32x8 (or any
integers
with 256 bits) all match up to __m256i right now, althoguh this may want
to
change in the future.
Finally we're also not testing the instruction listed in the XML right now.
There's a huge number of discrepancies between the instruction listed in
the XML
and the instruction listed in assert_instr, and those'll need to be taken
care
of in a future commit.
Closes #240 https://github.com/rust-lang-nursery/stdsimd/issues/240
You can view, comment on, or merge this pull request online at:
https://github.com/rust-lang-nursery/stdsimd/pull/251
Commit Summary

Verify Intel intrinsics against upstream definitions

File Changes

M .travis.yml
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-0
(1)
M Cargo.toml
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-1
(1)
M ci/run.sh
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-2
(4)
M coresimd/src/x86/i586/abm.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-3
(16)
M coresimd/src/x86/i586/avx.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-4
(165)
M coresimd/src/x86/i586/avx2.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-5
(146)
M coresimd/src/x86/i586/bmi.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-6
(8)
M coresimd/src/x86/i586/sse.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-7
(43)
M coresimd/src/x86/i586/sse2.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-8
(7)
M coresimd/src/x86/i586/sse41.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-9
(20)
M coresimd/src/x86/i586/sse42.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-10
(60)
M coresimd/src/x86/i586/xsave.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-11
(14)
M coresimd/src/x86/i686/mmx.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-12
(2)
M coresimd/src/x86/i686/sse.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-13
(16)
M coresimd/src/x86/i686/sse2.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-14
(66)
M coresimd/src/x86/i686/sse41.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-15
(44)
M coresimd/src/x86/i686/ssse3.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-16
(2)
M coresimd/src/x86/x86_64/mod.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-17
(3)
M coresimd/src/x86/x86_64/sse2.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-18
(46)
A coresimd/src/x86/x86_64/sse41.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-19
(49)
M coresimd/src/x86/x86_64/xsave.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-20
(12)
A stdsimd-verify/.gitattributes
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-21
(1)
A stdsimd-verify/Cargo.toml
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-22
(18)
A stdsimd-verify/build.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-23
(24)
A stdsimd-verify/src/lib.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-24
(248)
A stdsimd-verify/tests/x86.rs
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-25
(288)
A stdsimd-verify/x86.xml
https://github.com/rust-lang-nursery/stdsimd/pull/251/files#diff-26
(134861)

Patch Links:

https://github.com/rust-lang-nursery/stdsimd/pull/251.patch
https://github.com/rust-lang-nursery/stdsimd/pull/251.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rust-lang-nursery/stdsimd/pull/251, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AA3NpinyeBFbIzeRTFmpBapOycipDJBZks5tDBgEgaJpZM4RLa3G
.

So this looks awesome and it has surfaced lots of bugs and inconsistencies in the conventions that we were trying to follow.
I think we should clarify whether we want to keep following these conventions and improve this a bit to enforce them:

we were use unsigned integer types when bit manipulation was intended (including bitflags, bitmasks, etc.): why? I don't really know. If I had to guess I'd say that this is because unsigned integers in C and C++ have modulo arithmetic, and the newer intrinsics tend to follow this convention even though some of the older ones don't. In Rust, however, arithmetic and signedness are orthogonal to each other.
we were using appropriately sized types (as long as it was reasonable): why? for increased type safety (e.g. trying to pass a 0xFFFF to a flag taking an u8 raises a warning). Intel specifies most of these arguments as having type int (which can be any integer type from 8-bit to 64 bits, depending on the platform), but then the specification text adds extra semantic information like it always being positive, being in some range [0, {2,4,8,16,...255, 16386,...}). Many intrinsics use these information to translate int not only to i32, but every combination of {i,u}{8,16,32}.
we did not have a properly working __m64 for a long time some we have a lot of intrinsics with broken code gen that just use i64.  With these intrinsics we should be extra careful because __m64 means an MMX register and LLVM calls this particular type x86_mmx. That is, i8x8 has 64 bits but it is not necessarily an x86_mmx type. The easiest way to strongly type these is to just transmute internally to __m64 but we should check that chaining these intrinsics doesn't break codegen.

In general as the libs team has discussed SIMD over time it's becoming more and more apparent that we're not going to deviate at all from Intel's upstream definitions. I expect the uNxN types to all go away on Intel eventually in favor of __m256 and such natively as we stabilize intrinsics. As such I've switched all arguments to exactly what intel says (i32 where intel says int). In general I don't think it really matters about all the constant arguments, they're all constant anyway so the type shouldn't propagate anywhere else in the program.
I'd personally prefer to not have special cases when reading Intel's own definitions and trying to bend over backwards to map those to our own "possibly more correct" types. If we can come up with a strong technical argument for why we'd make such a transformation I thin kthat makes sense, but "we happened to do it yesterday" I don't think is sufficient.
For __m64 related things I believe i8x8 (or any 64-bit vector) is all defined the exact same way as __m64 (or at least that's what I thought it was done as). In that sense we'll likely eventually move to just __m64 so that'll just get updated naturally. The main change here was switching from a literal i64 to an mmx type.

I'll be ok with:

offering __m{64. 128, 256}{_,i,d}, types without any operations (like we do today)

specifying all intrinsics to use those just like C does

(optional as an after-step): offering the {i,u,f}{8,16,32,64}x{2,4,8,16,32} types, with conversions from/to __m{64. 128, 256}{_,i,d} (to avoid stabilizing repr(simd) and the LLVM generic operations like simd_cast).

That is, we have the same intrinsic API that C does, but higher-level libraries and users can use portable {i,u,f}{8,16,32,64}x{2,4,8,16,32} types in their APIs, but internally they will need to convert those to the appropriate __m{64. 128, 256}{_,i,d}.
The points 1. and 2. are non-controversial because that's what C does and this is a low-level API, so we can deliver those "soon".
The point 3 would be a convenience for libraries like faster. They can build their own portable types on top of __m{64. 128, 256}{_,i,d} but that is really painful for library authors and we really should be using the generic LLVM intrinsics here anyways.
All in all, I'll agree to all of this, but its a huge change API wise, and it hasn't been discussed much in the open, I think. The quickest thing would be to create an issue here to discuss it, but this is already at a point where we (or I) can write an RFC about this.

(i32 where intel says int)

We probably should just add an int type alias somewhere in the library so that, if platform compatibility ends up giving us trouble in the future, we can at least hack around that in a single place.

I'd personally prefer to not have special cases when reading Intel's own definitions and trying to bend over backwards to map those to our own "possibly more correct" types. If we can come up with a strong technical argument for why we'd make such a transformation I thin kthat makes sense, but "we happened to do it yesterday" I don't think is sufficient.

Basically we will need to review every single intrinsic, and motivate why it uses one type instead of another. That's an absurd ton of work. From the pov of "we want to stabilize this someday", trying to deviate from the Intel intrinsics in any way makes this whole thing "un-rewieable/un-RFC'able".

For __m64 related things I believe i8x8 (or any 64-bit vector) is all defined the exact same way as __m64 (or at least that's what I thought it was done as).

IIRC when you added x86_mmx to the compiler the logic was that it had to be a 64-bit vector containing a single element, see: https://github.com/rust-lang/rust/blob/3cc68bac7c89a81ec83cbd8f0aff9db001425c50/src/librustc_trans/type_of.rs#L36 .

@BurntSushi help

(optional as an after-step): offering the {i,u,f}{8,16,32,64}x{2,4,8,16,32} types, with conversions from/to __m{64. 128, 256}{_,i,d} (to avoid stabilizing repr(simd) and the LLVM generic operations like simd_cast).

I'd be willing to steward a package containing the more stringently-typed definitions of these intrinsics, if that helps with the decision at all. Perhaps we could have a solution similar to the http crate with the "strong" vector types and perhaps portable typedefs of them?

In the mean time I don't know what to do with this PR, I think we should merge it, but changing all those APIs is a huge breaking change.

I maintain 2 of the 5 packages which depend on stdsimd at the moment, and I'd recommend breaking the API as much as possible while we're still figuring this stuff out and few people actually use the crate.

@gnzlbg

That is, we have the same intrinsic API that C does, but higher-level libraries and users can use portable {i,u,f}{8,16,32,64}x{2,4,8,16,32} types in their APIs, but

Yeah that's what I'd imagine as well, the "more portable" types would probably be much more laggard in stabilization as well.

All in all, I'll agree to all of this, but it's a huge change API wise ... but changing all those APIs is a huge breaking change.

Agreed it's a big change! We'd want to be somewhat careful about it I think and probably yes have a bit of discussion first. FWIW though I don't consider this library having any stability guarantees right now though.

We probably should just add an int type alias somewhere in the library so that, if platform compatibility ends up giving us trouble in the future, we can at least hack around that in a single place.

I'd rather not, we have yet to even see from a distance a realistic platform for Rust where this is true. This has lots of complications when moving into libcore as well, let's just not.

Basically we will need to review every single intrinsic, and motivate why it uses one type instead of another. That's an absurd ton of work. From the pov of "we want to stabilize this someday", trying to deviate from the Intel intrinsics in any way makes this whole thing "un-rewieable/un-RFC'able".

Correct, this is why "hey it's the same as intel" is so crucial to be able to rubber-stamp APIs and be confident in such a stamp

@AdamNiederer

It's worth noting, however, that the ambiguity of intel's vector types isn't necessarily duplicated across all platforms

Certainly! Something like __m128 would not be portable, it'd only be available on x86. Platforms like AArch64 would have their own whole suite of types.

I'd be willing to steward a package containing the more stringently-typed definitions of these intrinsics, if that helps with the decision at all. Perhaps we could have a solution similar to the http crate with the "strong" vector types and intrinsic definitions?

That'd be great! It's certainly something we always wanted to see on top of a library like this!

In the mean time I don't know what to do with this PR

I plan on addressing some of the feedback and then merging. I don't think we'll break much usage by switching the types from things like u8 to i32 as they're all constants anyway, and otherwise it's mostly just mmx stuff that got fixed which we've seen claims about anyway that they shouldn't be exposed anyway!

I'm in favor of this. I basically don't think "breakage" at this point is something we should be concerning ourselves with. This crate is still very clearly in an experimental phase while we iron out the API. Folks using it today should be doing it with that knowledge, and with the knowledge that their experience should help inform us of future API decisions. We should semver bump and move on. :)
I don't have too many thoughts. I am slowly coming around to @alexcrichton's view that we should revert our efforts to provide more stringent types on the vector intrinsics. I am pretty disappointed myself since we put so much work into it, but I suppose it's just a sunk cost. I tend to think that having these be checked in an automated fashion is a pretty huge advantage. With that said, I do think we should have a contingency. i.e., The stabilization effort should lay out plans for what to do in the event that we did indeed get some intrinsics wrong.

@alexcrichton  So all in all I'd say this is good to once it's green again.
The only thing that it is a bit sketchy is switching so many APIs to use i8x8 when we already know we want to switch them to __m64 in the near future but that doesn't need to be done in this PR.

@AdamNiederer

Perhaps we could have a solution similar to the http crate with the "strong" vector types and intrinsic definitions?

I think we should just provide all vector types in coresimd for all platforms.
The x86 intrinsics are only specified in terms of the "weak" __mXYZw types, while most of the non-x86 intrinsics (ARM, MIPS, PowerPC, ...) are specified in terms of the "strong" txWxL vector types (with different notation, e.g., v4i32, but equal semantics).
Implementing these types needs unstable intrinsics that we would prefer never to stabilize, and we need to implement both in coresimd anyways.
Given that they are already implemented, and that they currently work with each other (this is not hard), I don't currently see what we would gain from splitting the types into a different crate.
In particular, because coresimd would then need to depend on this crate, and this crate would need to be part of core.
Maybe my views on this would change as we implement more ARM, MIPS, and PowerPC intrinsics in coresimd and new problems arise, but I expect the differently-named "strong" vector types in these platforms to be just type-aliases.
Also, for stabilizing the intrinsics of a particular platform we only need to stabilize the vector types that the platform uses. That is, to stabilize the x86 intrinsics we only need to stabilize the "weak" vector types, and the "strong" ones can remain unstable.

@BurntSushi

I am pretty disappointed myself since we put so much work into it, but I suppose it's just a sunk cost.

Well its not 100% sunk: we learned something. Once the RFC for this arrives somebody is going to ask "why aren't the Intel intrinsics more strongly typed?" and now we have a pretty good answer for that ("they were more strongly typed for a while; it did not work out").

I tend to think that having these be checked in an automated fashion is a pretty huge advantage.

Agreed.

@gnzlbg

The only thing that is a bit sketchy is switching so many APIs to use i8x8 when we already know we want to switch them to __m64 in the near future but that doesn't need to be done in this PR.

Oh I think I moved them over to __m64 where I could.


Reloading on error

Thanks a lot for this great library.I would like to reload to get contents in case there is an error in connection during trial.How possible is that?

@nonybright Hi, retrying your network request or database load is not up to this library. This library handles setup listview/recyclerview/loading row and tracking scroll events. If your data load fails you need to handle "retry case" yourself.
Use hasMoreDataToLoad() method to help you along the way.

thnax a lot. Already did that

@nonybright ok closing this then.


tests, optimizations, documentation fixes

adds fuzz tests for every operation
adds benchmark for almost every operation, tested with normal elm compilation and elm-optimize-level-2: see the specific-benchmark/ folder which includes pdfs of both compilation modes
documentation fixes, like sometimes calling ropes lists or using lists instead of ropes in the examples
switches to the best* implementations

* most are decisive between browsers and compilation mode. I chose the fastest option with elm-optimize-level-2 only when it wasn't significantly slower on normal compilation mode.
Pick the parts that you like :)
Separate note: filter, filterMap, concat, concatMap do/should not keep (nested) empty ropes around but isEmpty is somewhat costly since it recursively walks to every sub-tree. I tried representing its empty state uniquely in the branch explicit-emptiness and I like the result :)

... why does it say I close it? o.O

I see you "reverted" that exposing in https://github.com/miniBill/elm-rope/commit/afef9259e1d6cdae04fb716fe50575bedfb8262c, but then that means having two copies of the same file, which smells to me. Should probably go for the Internal path

I would love this! But elm considered switching from type to type alias = Internal to be a breaking change. If that's not an issue for you, let's do it!

Yeah, not an issue, especially because it's not actually breaking (and, as you said, the number of users is probably really small)

Ok, pushed the change to main


minLength in  does not work

Current Behavior 😯
The maxLength functionality in  works as expected, but the minLength does not do anything. In fact it is like it's not there at all!
Expected Behavior 🤔
If the user enters fewer characters than minLength, after clicking Enter from keyboard, an alert should popup to say minLength is 3. Or basically it should not go to the next step if the minLength does not reach.
Example code that I am using that maxLength works but minLength does not work:
<TextField
            required
            type="text"
            value={Somthing}
            onChange={e => setSomthing(e.target.value)}
            InputProps={{
              disableUnderline: true,
            }}
            inputProps={{
              maxLength: 10,
              minLength: 3,
            }}
            onKeyPress={e => {
              if (e.key === 'Enter') {
                handleSomething()
              }
            }}
            color="primary"
          />

Why is every issue mentioning maxLength being closed? It still does not work.


Convert GitHub issue references to IRI values

We are converging on OBO-wide conventions for referencing URLs as annotation values. We would prefer to use real IRIs instead of strings with datatype xsd:anyURI. Need to:

[ ] Bulk update existing values
[ ] Update GO editor guide
[ ] Notify GO editors

We have been doing this for other ontologies with orcids though.. can you generate a minimally failing OBO example?

You're right, I see that in Uberon. I'll try to figure out what's different.

We did have this problems as well along the way, things to look out for:

rdfs:seeAlso is metadata: TRUE
None of the github issues is a subject in a triple
as you are essentially creating a relation now, the GO terms are no longer connected by property-value, but by relationship to the github issue.

The error seems to arise from IRI values containing # fragments, e.g., relationship: term_tracker_item https://github.com/geneontology/go-ontology/issues/21024#issuecomment-909025243.

This is an unfortunate problem, because having a hash in an IRI is pretty common, especially for semantic web identifiers.

Very unfortunate, but maybe we can tell the OBO parser to permit # without creating another version?

Are we still planning to to this @balhoff ?


How to set collapsed" class width dynamically on the basis of number of item total length (length the item )

Same as #24346


Out of stack space under IE 10 and 11

The problematic stack changes between versions. IE 11 gets stuck in Collection. Seems to be an issue with a lack of polyfill support required by Aurelia for IE compatibility.


Address overflow in ContentLength response header

Fixes https://github.com/Azure/azure-sdk-for-net/issues/36540

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Core


connectivity error for node is hard to read when long

User Story
As shown in this screenshot, if an error is long, we do not do any word wrapping, leaving the user with the burden of sliding the bar all the way across to read. This is not very convenient, let's see if we can make this better.

We're going to need some UX opinions here, @jonong1972
Definition of Done
Node connectivity error is easier to read

It looks that currently we are utilizing the side drawer only for the Error message on this Nodes view. Since that is the only thing we are doing on this page, we may be able to just word wrap the whole message, and we can over the whole side drawer with the message.
Looking at the code, for this particular context, we would have to put a CSS style on the pre tag.
white-space: pre-wrap;
Which would then show the error like this: