text:
Add Travis CI integration

We'd like to run our tests in an automated fashion, so it'd be nice to set up Travis at some point.

Hi!
I started with dockerizing the application, as I has a lot of problems with installation. You can check progress here: https://github.com/MSusik/libaprdocker
I still can't get through the CMake installation.
The first error I got is about this line:
project(LibAPR DESCRIPTION "Adaptive Particle Representation library")
Simply removing DESCRIPTION "Adaptive Particle Representation library does the trick here.
Then, I'm stuck with c-blosc
CMake Error at CMakeLists.txt:68 (add_subdirectory):
  The source directory

    /srv/LibAPR/external/c-blosc

  does not contain a CMakeLists.txt file.

If you could check what I'm doing wrong, then I could progress with Docker and CI.
Thanks!

I believe this might be helpful https://github.com/cheesema/LibAPR/pull/75

Please use at least cmake 3.9 (DESCRIPTION is not supported earlier). Problem here is that CMakeLists.txt does not require such high revision - it will be udpated soon and probably required version will be 3.10 since it introduce nice features for CUDA and  I guess this is what currently will be needed in LibAPR.
Regarding your blosc problem please clone it with recursive flag:
git clone --recursive git@github.com:cheesema/LibAPR.git

or after cloning main repository run:
git submodule update --init --recursive

I agree as discussed last week. Let's bump the minimum required cmake
version then.

All right, https://github.com/MSusik/libaprdocker contains a working Docker recipe.
I prefer to keep Dockerfile on a separate repository, if it is not intended to be used in development.
Please tell me, what can be checked during a Travis build? How to run tests?
Thanks!

I'll talk to the boys tomorrow re this.

So we are a step closer, build integration is done, we just need to get the tests integrated.

Seems that it is done https://travis-ci.org/cheesema/LibAPR.
@krzysg I'm closing the issue, feel free to reopen if there is anything to add.

authors: MSusik cheesema krzysg psteinb skalarproduktraum

repo: cheesema/LibAPR


text:
Systemd patch

This patch adds support for systemd. It will install a systemd configuration file on systems that support it instead of placing a file in /etc/init.d.
One caveat, there will still be a /etc/init.d/splunk file installed via. the "splunk enable boot-start" command. Since that command is what accepts the license agreement, I didn't see an easy way to remove/replace it.

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@sjthespian

Please sign the CLA here.

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.

Argh, I thought I had signed that months ago!

I have also opened an enhancement request with splunk (case 306680), to have "splunk enable boot-start" install the systemd unit file on system with systemd and to only install /etc/init.d/splunk on systems without systemd.

Thanks for the update and for fixing this

source: gharchive/pull-request

authors: chef-supermarket sjthespian tas50

repo: chef-cookbooks/chef-splunk

license_type: permissive

license_source: bigquery


text:
update license metric to include a larger list of open source licenses

Pairs with an implementation of the license check in foodcritic.

@nathenharvey What do you think of this expanded list of open source licenses based on SPDX identifying a license as OSI-approved?

Merging this since we've created a Foodcritic rule based on the idea

repo: chef-cookbooks/cookbook-quality-metrics


text:
undefined method `config' for Ohai:Module

Cookbook version
3.0.1
Chef-client version
11.10.4
Platform Details
AWS - Ubuntu 14.04 Trusty
Scenario:
I am trying to deploy one of my apps which uses this cookbook as a dependency
Steps to Reproduce:
This is happening during the cookbook compile time.
Expected Result:
Execution of the cookbook build process to continue
Actual Result:
================================================================================
Recipe Compile Error in /var/lib/aws/opsworks/cache.stage2/cookbooks/ohai/attributes/default.rb
NoMethodError
undefined method `config' for Ohai:Module
Cookbook Trace:
/var/lib/aws/opsworks/cache.stage2/cookbooks/ohai/attributes/default.rb:30:in `from_file'
Relevant File Content:
/var/lib/aws/opsworks/cache.stage2/cookbooks/ohai/attributes/default.rb:
23:                                     "#{ENV['systemdrive']}/chef/ohai_plugins"
24:                                   else
25:                                     '/etc/chef/ohai_plugins'
26:                                   end
27:
28:  # The list of plugins and their respective file locations
29:  default['ohai']['plugins']['ohai'] = 'plugins'
30>> default['ohai']['hints_path'] = Ohai.config[:hints_path].first
31:

This is fixed with the 4.0 release, which properly supports both Ohai 8.6.0 config format and the previous format.

source: gharchive/issue

repo: chef-cookbooks/ohai


text:
knife vsphere vm clone fails to execute

The following was done on a centos 6.7 machine. Out of the few commands i tried this one gave me an error.
Running "knife vspshere vm clone" Causes the following error:
/usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- readline (LoadError)         from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/local/lib/ruby/gems/2.3.0/gems/knife-windows-1.4.0/lib/chef/knife/winrm_base.rb:37:in block (2 levels) in included'         from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/lib/chef/knife.rb:232:in block in load_deps'
from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/lib/chef/knife.rb:231:in each'         from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/lib/chef/knife.rb:231:in load_deps'
from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/lib/chef/knife.rb:216:in run'         from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/lib/chef/application/knife.rb:148:in run'
from /usr/local/lib/ruby/gems/2.3.0/gems/chef-12.8.1/bin/knife:25:in <top (required)>'         from /usr/local/bin/knife:23:in load'
from /usr/local/bin/knife:23:in `'
Here is my the info provided by "gem env"
RubyGems Environment:

RUBYGEMS VERSION: 2.6.3
RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.3.0
USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.3.0
RUBY EXECUTABLE: /usr/local/bin/ruby
EXECUTABLE DIRECTORY: /usr/local/bin
SPEC CACHE DIRECTORY: /root/.gem/specs
SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
RUBYGEMS PLATFORMS:

ruby
x86_64-linux

GEM PATHS:

/usr/local/lib/ruby/gems/2.3.0
/root/.gem/ruby/2.3.0

GEM CONFIGURATION:

:update_sources => true
:verbose => true
:backtrace => false
:bulk_threshold => 1000

REMOTE SOURCES:

https://rubygems.org/

SHELL PATH:

/usr/local/sbin
/usr/local/bin
/sbin
/bin
/usr/sbin
/usr/bin
/root/bin

Hi, and thanks for the detailed bug report. I'm going to guess that
ruby -rreadline -e 'puts 42'

fails for you, too?
I'm not sure why we require readline as I don't immediately see it being used in the source. But it's usually a part of the Ruby installation -- the readline module is part of the standard library.
Did you have the readline-devel package installed when you compiled Ruby? If not, install that and recompile Ruby.
Alternatively, try gem install readline-rb and see if that helps.

runnung gem install rb-readline fixed the issue!
Thanks for the help!

repo: chef-partners/knife-vsphere


text:
cereal: remove backend package

Description
When working on #1777 we realized extending our new name types to the Driver
interface would be difficult because directly using them would result in circular dependencies.
Before this change, the import pattern in the cereal library looked like this:
+-----------+         +-----------+
|           |         |           |
|  cereal   +-------->+  backend  |
|           |         |           |
+-----+-----+         +---+-------+
      ^                   ^
      |                   |
      |                   |
      |                +--+-------------+
      +----------------+                |
                       | grpc/postgres  |
                       |                |
                       +----------------+

With the backend package holding the Driver interface and an assortment of types for that interface. This led to a few problems:

The Driver interface could not refer to any times in the cereal package.
Users occasionally had to import yet-another package when they wanted to refer to Driver.

While we can solve (1) by introducing yet another type and converting between them, the backend package was really just a hold-over from when the library only had one backend.  Since the package only held a handful of types, here we've opted to remove it entirely, moving all of its types into cereal directly.
Known Issues
I've done a very naive merging of the two packages.  Since we had types that were named the same in both packages, I've renamed them with pretty bad names:

backend.WorkflowInstance -> cereal.WorkflowInstanceData
backend.TaskResult -> cereal.TaskResultData
backend.Task -> cereal.TaskData

I believe we can probably clean this up substantially and remove some of the wrapper types that we have.  However, the goal here was to do mostly mechanical transformations.
Future Work

Apply WorkflowName and TaskName types to Driver interface
Investigate refactoring WorkflowInstanceData, TaskResultData, and TaskData

Definition of Done

All tests pass, no behavior changes, one less packages.

Review Notes:  I'm not sure we really want to do this.  The backend package has annoyed me for a bit, but there is a long way to go on top of this to really make it pretty.

Hrm, it doesn't seem to be running my tests on this non-master PR ....

repo: chef/automate

license_source: github-api


text:
Only report cookbook source conflicts that could affect solution

In the original implementation of multiple default sources, I took the most conservative possible route, making it an error condition if any cookbooks appeared in more than one of the sources and didn't have a cookbook "name", explicit_source_option statement. The problem with this approach is that even if a cookbook could never be in or affect the dependency solve, you had to make a cookbook statement for it, which has the side-effect of pulling the cookbook into the solution even if you don't want it. Also, it's just annoying and isn't protecting the user from anything--the cookbook wouldn't be used if we had just ignored the conflict.
This patch adds a simple graph traversal function which finds all cookbooks that could possibly be in the dependency solve. If any conflict is detected between two sources, we check this list and ignore the conflict if it's not relevant to the demanded cookbooks.

@chef/workflow

:+1:

authors: danielsdeleo tyler-ball

repo: chef/chef-dk


text:
specifying an audit-mode in a machine's run_list fails the provisioning run.

When I have an audit-mode recipe as part of my run_list in a provisioning recipe, the provisioning run stack traces with a generic
The audit-mode recipe is designed to intentionally fail audits, but as of chef-client 12.4.1, audit failures are not supposed to break a chef-client run; merely report that there are audit items that need remediation.

The provisioned node will report back to Chef Server and analytics that it failed audit, but not converge.
Running chef-client manually does not result in an error on the node.
However the provisioner node fails and does not continue its run_list.

Reference from #387:
================================================================================
Error executing action `converge` on resource 'machine_batch[default]'
================================================================================

RuntimeError
------------
Error: command 'chef-client -l info' exited with code 1.

This is due to:
 Chef Client finished, 20/24 resources updated in 39.348871933 seconds
   2/4 controls succeeded

We shouldn't fail on audit failures.
This is using:
chef-provisioning (1.2.0)
chef-provisioning-aws (1.2.1)
Chef Development Kit Version: 0.7.0.rc.0
chef-client version: 12.4.1
berks version: 3.2.4
kitchen version: 1.4.1
Provisioning to AWS.  Chef-Server 12 (also running in AWS)

Okay, I think I understand the issue - you want the provisioner workstation (hereafter referred to as just workstation) to complete its run_list, even when a machine (or machine_batch) resource spins up a node that runs an audit_recipe which fails.
Am I understanding that correctly?

Yes!

gist showing an example recipe and output from provisioning run - https://gist.github.com/tyler-ball/a9cbed07a9a8cbcbb19a

@ricardolupo Audits are not performed until after the convergence, so even if there is an audit that fails it will occur after all the other resources have converged.  For example, if a provisioned node has the run_list appserver::app, audits::default, appserver::config and the audits::default recipe was full of failing control_groups then the app and config recipes will still be ran fully before the control_groups are ran.
The issue I am seeing now (and the reason I opened https://github.com/chef/chef-provisioning/pull/414) is because failing audits are returning a non-zero exit code which the provisioning workstation interprets as a failure and stops performing the rest of its run_list.  My PR addresses that by adding an option for ignoring provisioned node failures and continuing the rest of the provisioning workstation run_list.
That PR also means that if you have 3 machines in a machine_batch and you add the ignore_failure converge option to them, no 1 failure will fail the entire machine_batch.  Does that support your request?

@tyler-ball would audits also be performed after convergence if the audit recipes are at the beginning of the run_list?
I'm ok with allowing the machines to converge on audit failure for all of the machines in a machine_batch). Since audit mode would then report failures on the next converge anyway, users will get the visibility post-provisioning

would audits also be performed after convergence if the audit recipes are at the beginning of the run_list?

Yes (unless something changed since the last time I looked at it).

As we discussed, ideally I'd like 'ignore_failure' and  'ignore_audit_failure' options so we can specifically ignore one or the other.
But the first step is getting the logic in there to ignore any failures.  Then we can iterate on that.
I think there will be customers who don't want things to continue to be provisioned if any system fails its audit mode and supporting that makes sense, but I also suspect at least initially that'll be the minority.

authors: galenemery ricardolupo tyler-ball

repo: chef/chef-provisioning


text:
Update observer-cli SHA.

Description
Looks like observer cli rebased/force pushed the repo, changing all of
the SHAs. This breaks the build (and any attempt at replicating past
builds). Update observer-cli.
Signed-off-by: Mark Anderson mark@chef.io
Issues Resolved
Fixes build breakage of master
Check List

[x] New functionality includes tests
[ ] All tests pass
[x] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

This fixes the build (https://buildkite.com/chef/chef-chef-server-master-omnibus-adhoc/builds/211)

Administratively merging to fix build

repo: chef/chef-server


text:
Cannot edit_resource of a resource defined in a custom resource's action

Description
Very often I come across cookbooks that use custom resources to wrap other resources, but I need to edit the underlying resource. When I attempt to edit_resource!, Chef is unable to find it.
Is this a bug, or is there a correct way to be doing this? Not sure if @lamont-granquist can provide some insight 🙏
Chef Version

Chef: 14.15.6

I also verified the same behavior on 15.13.8 and 16.4.41.
Platform Version

Ubuntu 18.04
Replication Case

Example resource:
property :my_name, name_property: true
provides :my_custom_resource

action :create do
  file "/tmp/#{new_resource.my_name}" do
    action :create
  end
end

action :delete do
  file "/tmp/#{new_resource.my_name}" do
    action :delete
  end
end

Example recipe:
my_custom_resource 'test' do
  action :create
end

edit_resource!(:file, '/tmp/test') do
  action :delete
end

Client Output

Chef::Exceptions::ResourceNotFound
----------------------------------
Cannot find a resource matching file[/tmp/test] (did you define it first?)

Cookbook Trace:
---------------
  /var/tmp/kitchen/cache/cookbooks/wo-common/recipes/debug_resource.rb:5:in `from_file'

Relevant File Content:
----------------------
/var/tmp/kitchen/cache/cookbooks/wo-common/recipes/debug_resource.rb:

  1:  my_custom_resource 'test' do
  2:    action :create
  3:  end
  4:
  5>> edit_resource!(:file, '/tmp/test') do
  6:    action :delete
  7:  end
  8:

System Info:
------------
chef_version=14.15.6
platform=ubuntu
platform_version=18.04
ruby=ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-linux]
program_name=/opt/chef/bin/chef-client
executable=/opt/chef/bin/chef-client

No that isn't possible.  Until you execute the custom resources action the sub-resource collection doesn't exist, the action hasn't been parsed the resource does not exist as an object.  The sub-resource compile/converge then runs when the action runs.  Control does not return to the recipe context until after it has all been executed (and even the delayed notifications in the subresource have run).
This is flatly impossible.
A common misconception is that there is one big compile phase of all the recipe code and the resources, and then one big converge phase.  That isn't how it works at all.  The recipe compile phase completes before any sub-resource is touched.  As resources fire in recipe mode, their actions cause the sub-resource compile/converge modes to fire.  So the compile+converge phases of every sub-resources all happen at converge time in the enclosing context.
This is why I did unified_mode in resources since there's no point to the split compile/converge modes of sub-resources at all.  Eventually all sub-resources are going to execute without any split phase at all.
Really edit_resource is a bad hack to work around poor recipe design.  The real fix is to fix the custom resource.  If there's a supermarket resource which sorta does the right thing, but is abandoned, and you need to hack it up then the right solution is to fork it and maintain it (either internally or take over maintainership of it).  Hacking things up with edit_resource is simple, easy and the wrong thing to do.  The custom resource probably needs a new property to inject different behavior into it, which is more of dependency-injection kind of style (see e.g. Monkeypatching is Destroying Ruby which may be hyperbole, but I basically agree with it).
Anyway, I couldn't fix this even if I wanted to.

authors: evandam lamont-granquist

repo: chef/chef


text:
Unexpected error when using "knife cookbook show ...."

Description
Un unexpected error when using "knife cookbook show COOKBOOK [VERSION] [PART] [FILENAME]" with chef-client 12.7.2.   With chef-client 12.5.1, it did not have this problem.
Chef Version
Chef Development Kit Version: 0.11.2
Chef-client version: 12.7.2
Platform Version
Ubuntu 14.04
Replication Case
> knife cookbook show bb-chef-svv -c /home/nlam/.chef/knife_cluster_master.rb
output> bb-chef-svv   0.50.0  0.1.10

> knife cookbook show bb-chef-svv 0.50.0 recipes default.rb -c /home/nlam/.chef/knife_cluster_master.rb
output>
ERROR: knife encountered an unexpected error
This may be a bug in the 'cookbook show' knife command or plugin
Please collect the output of this command with the `-VV` option before filing a bug report.
Exception: NoMethodError: undefined method `preferred_manifest_record' for #<Hash:0x000000029ca548>

Client Output
N/A
Stacktrace
knife cookbook show bb-chef-svv 0.50.0 recipes default.rb -c /home/nlam/.chef/knife_cluster_master.rb -VV
INFO: Using configuration from /home/nlam/.chef/knife_cluster_master.rb
DEBUG: Chef::HTTP calling Chef::HTTP::JSONInput#handle_request
DEBUG: Chef::HTTP calling Chef::HTTP::JSONOutput#handle_request
DEBUG: Chef::HTTP calling Chef::HTTP::CookieManager#handle_request
DEBUG: Chef::HTTP calling Chef::HTTP::Decompressor#handle_request
DEBUG: Chef::HTTP calling Chef::HTTP::Authenticator#handle_request
DEBUG: Signing the request as admin-mandolin
DEBUG: Chef::HTTP calling Chef::HTTP::RemoteRequestID#handle_request
DEBUG: Chef::HTTP calling Chef::HTTP::ValidateContentLength#handle_request
DEBUG: Initiating GET to https://chef-server.nlam.svv.thor.altus.bblabs/organizations/mandolin/cookbooks/bb-chef-svv/0.50.0
DEBUG: ---- HTTP Request Header Data: ----
DEBUG: Accept: application/json
DEBUG: Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
DEBUG: X-Ops-Server-API-Version: 1
DEBUG: X-OPS-SIGN: algorithm=sha1;version=1.1;
DEBUG: X-OPS-USERID: admin-mandolin
DEBUG: X-OPS-TIMESTAMP: 2016-03-03T14:58:48Z
DEBUG: X-OPS-CONTENT-HASH: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
DEBUG: X-OPS-AUTHORIZATION-1: brw005daB9iEkBX91pP7nOGJjWmqSd0rWr5C/woD8lmlbq6MjZ8NLd/Tb/LZ
DEBUG: X-OPS-AUTHORIZATION-2: JF592xeTqjTXimDrhEuAFzFZVOdT9wlFYuBagKN1mXwuJkkFqHtb5Up9c2ze
DEBUG: X-OPS-AUTHORIZATION-3: YiebShRzxSoElaJ9t6P940/+N/r3rYo0wIusUVb9/p+rrO24vSS0e39tE2OZ
DEBUG: X-OPS-AUTHORIZATION-4: ptHJn8Nr04RgETN8UEW71Hoi2pEHqof7b1LFn3F51BKbuBUX3EihWZ1pO59S
DEBUG: X-OPS-AUTHORIZATION-5: LsXg0tGYXpzLBRKTr7xA0UaEdtGyTC5I6h1C55AaG3Y7bVp03j6ewAkAQRop
DEBUG: X-OPS-AUTHORIZATION-6: 3iJvmt34Eq9xlbzo1ikn9qwKMtYlrgZ4WsQYhCDkrw==
DEBUG: HOST: chef-server.nlam.svv.thor.altus.bblabs:443
DEBUG: X-REMOTE-REQUEST-ID: e5c4cc5a-3ae2-4050-b771-964f42fd16a2
DEBUG: ---- End HTTP Request Header Data ----
DEBUG: ---- HTTP Status and Header Data: ----
DEBUG: HTTP 1.1 200 OK
DEBUG: server: openresty/1.9.3.1
DEBUG: date: Thu, 03 Mar 2016 14:58:48 GMT
DEBUG: content-type: application/json
DEBUG: transfer-encoding: chunked
DEBUG: connection: close
DEBUG: x-ops-server-api-version: {"min_version":"0","max_version":"1","request_version":"1","response_version":"1"}
DEBUG: x-ops-api-info: flavor=cs;version=12.0.0;oc_erchef=12.3.0
DEBUG: content-encoding: gzip
DEBUG: ---- End HTTP Status/Header Data ----
DEBUG: Chef::HTTP calling Chef::HTTP::ValidateContentLength#handle_response
DEBUG: HTTP server did not include a Content-Length header in response, cannot identify truncated downloads.
DEBUG: Chef::HTTP calling Chef::HTTP::RemoteRequestID#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::Authenticator#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::Decompressor#handle_response
DEBUG: Decompressing gzip response
DEBUG: Chef::HTTP calling Chef::HTTP::CookieManager#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::JSONOutput#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::JSONInput#handle_response
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/knife/cookbook_show.rb:71:in `run': undefined method `preferred_manifest_record' for #<Hash:0x000000027257e8> (NoMethodError)
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/knife.rb:416:in `block in run_with_pretty_exceptions'
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/local_mode.rb:44:in `with_server_connectivity'
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/knife.rb:415:in `run_with_pretty_exceptions'
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/knife.rb:214:in `run'
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/application/knife.rb:148:in `run'
        from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/bin/knife:25:in `<top (required)>'
        from /opt/chefdk/bin/knife:50:in `load'
        from /opt/chefdk/bin/knife:50:in `<main>'

#4673 fixed this


text:
Update cookbooks for integration tests

Signed-off-by: Tim Smith tsmith@chef.io

👍


text:
can this plugin be used on devices without google play?

hi, can this plugin be used on devices without google play services? . Currently I am using its version 4.3.0 with sdk firebase 19.1. + And it sends me an error when using fetch ();

No, Firebase SDKs use google play services.

authors: chemerisuk jucedadev

license: MIT


text:
Messages are not showing in iOS

I'm sending two types of firebase messages :

notifications and custom messages.
but I'm seeing that they are both not showing.
Do I have to set some special fields on the data_payload or notification_payload to make them shown in iOS?

I'm testing the plugin and also having the same issue: no problems on Android but I'm not getting any notifications on iOS (once all has been configured in the cordova project and Firebase)

@gvolpe1968 @adrigardi90 do you have issues in showing foreground or background notifications? Data-only messages do not display anything.

@chemerisuk hi  Maksim, I'm not able to see neither foreground nor background .

Data-only messages do not display anything
that means the payload should always have the notification stream and that is what is always shown ?
thx

I'm also having the same issue. Messages show up on Android and not iOS.

Any solutions ?

I went to phonegap push plugin, working both platforms

Possible duplicate of https://github.com/chemerisuk/cordova-plugin-firebase-messaging/issues/95


text:
🛑 tt is down

In a5ba2c5, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2390 ms

Resolved: tt is back up in 4886ff4 after 10 minutes.

repo: chenhaonanniubi/upptime


text:
🛑 tt is down

In 17543a5, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 504
Response time: 10094 ms

Resolved: tt is back up in 87a3fb8 after 10 minutes.


text:
🛑 tt is down

In 53d34bf, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 3474 ms

Resolved: tt is back up in 49121ca after 16 minutes.


text:
🛑 tt is down

In e370a46, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 3892 ms

Resolved: tt is back up in fe7c3e9 after 13 minutes.


text:
🛑 tt is down

In 3249140, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2541 ms

Resolved: tt is back up in e7bf78e after 11 minutes.


text:
🛑 tt is down

In dd22f34, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2269 ms

Resolved: tt is back up in 7912594 after 23 minutes.


text:
🛑 tt is down

In 21705c7, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2327 ms

Resolved: tt is back up in e341ba4.


text:
🛑 tt is down

In cd7aad5, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2643 ms

Resolved: tt is back up in 46d9867 after 47 minutes.


text:
🛑 tt is down

In 429663e, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 5911 ms

Resolved: tt is back up in 7dd9bc1 after 24 minutes.


text:
WARNING Found misconfiguration! -1

Hello,
When running CORScanner on a list with multiple subdomains - the following is being outputed:
2019-10-02 16:24:38 WARNING Found misconfiguration! -1
2019-10-02 16:24:38 WARNING Found misconfiguration! -1
2019-10-02 16:24:39 WARNING Found misconfiguration! -1
2019-10-02 16:24:39 WARNING Found misconfiguration! -1
2019-10-02 16:24:39 WARNING Found misconfiguration! -1
Any idea why is this happening?
Thanks

I have made a new commit, it should be fixed now, please check it again. Thanks for reporting.

Works perfectly now.
Thanks chenjj!

authors: chenjj ddervosj

repo: chenjj/CORScanner


text:
Not working in Angular 9

Not working with Ivy render engine.

same for me. fails during runtime with:
Uncaught (in promise): TypeError: this.lavContainer is undefined
Any tips on how to resolve this?

Just use Lottie-web instead

I am also facing this issue. Fails at run time. Please refer the screenshot for details.

This package is abandoned, you can ngx-lottie instead, it supports Angular 9+.

authors: arturovt eyeswideopen manandkumaar vadimwe

repo: chenqingspring/ng-lottie


text:
Freeze the Backbone and Dilated Encoder

Hi,
Many thanks for your awesome work. In the original Detectron2, we can freeze certain layers of the backbone with _C.MODEL.BACKBONE.FREEZE_AT.
Can you please let me know how to  freeze both the ResNet backbone AND the Dilated Encoder, and update only the Decoder during training in YOLOF as well, say using yolof_R_50_C5_1x ?

You can manually add the freeze codes for backbone and encoder here in the yolof file as we do in the darknet.

authors: chensnathan ukdsvl

repo: chensnathan/YOLOF


text:
🛑 Chequeo Colectivo is down

In 92a911b, Chequeo Colectivo (https://chequeado.com/colectivo) was down:

HTTP code: 502
Response time: 9052 ms

Resolved: Chequeo Colectivo is back up in d04d70e.

repo: chequeado/status


text:
Revise the whole terminology one more time

I still don't like e.g. GENA_USE_SAMPLE, GENA_USE_ENTITY and so on, as they're not intuitive.
The new approach to defining a terminology should be next:

avoid homonyms;
prepare an initial list of words that can be used, then select from them by considering intuitivity;
... (I'll think about it later, now I'm slightly discouraged).

Style fix required: first brace must be at the same line.
https://github.com/cher-nov/Gena/blob/b9cf7ac50898a2298ab0eb1db7dd8c6723f055c5/genvector/genvector.c#L17-L18

repo: cher-nov/Gena

license: WTFPL


text:
Interface availability

Disable all fields in manifest, and only enable them when state gets an update from the network. Otherwise, if you exit app before data loads, new "clear all" event will get scheduled.

Dup of #16

license: mit


text:
error best_score: -196, scoreMax: -120

Hi,
There is an error massage 'error best_score: -196, scoreMax: -120' from BitMapperBS, and then fail to run picard markduplicates with 'Read  with refID -1 alignments (982243656, 982243755) are out of range for bam index
Error: Failed to add read to bam index'.
The data was run successfully before.
What may be the issue?

Is this a paired-end dataset or a single-end dataset?

It is the paired-end dataset.


text:
当mMaxVisible小于等于2时，下移动画会无限循环调用

如题

如果最大显示两个，子视图从顶部到底部我们依次称为 A , B，因为视图会被复用，所以 CardView 中有且仅有这两个视图对象。
在滑动 A 时，A 会执行一个移除的动画，同时为这个动画设置一个结束的监听，以便结束时执行把其他视图前移的动画。
动画结束后，此时 CardView 中的子视图顺序变为了 B，A，当我们再次滑动时，A 会执行一个前移动画，其实这个前移动画和之前的移除动画在 API>=14 时是一个对象，都是通过视图的view.animate() 获取的，源码：
public ViewPropertyAnimator animate() {
        if (mAnimator == null) {
            mAnimator = new ViewPropertyAnimator(this);
        }
        return mAnimator;
}

所以如果前移动画不设置监听的话，还会触发之前的监听事件，所以就会循环往复。
解决办法：将 CardView 中bringToTop()方法中的动画监听置空

repo: chiemy/CardView


text:
Concise Title

Concise Title
User Story
AS A marketing agency
I WANT a codebase that follows accessibility standards
SO THAT our own site is optimized for search engines
Acceptance Criteria
WHEN I view the title element
THEN I find a concise, descriptive title

A title of Horiseon Marketing was added to the source code of the Marketing Accessibility application.


text:
npm start Initializes the Server

npm start Initializes the Server
User Story
AS A developer
I WANT to create notes or code snippets with or without an internet connection
SO THAT I can reliably retrieve them for later use
Acceptance Criteria
GIVEN a text editor web application
WHEN I run npm run start from the root directory
THEN I find that my application should start up the backend and serve the client

The most recent PR addresses this aspect of the application and starts the server on running the npm run start command.


text:
Copy Trait is not Implemented for CreateDelta

A common pattern in game server is broadcasting the change in game state to every client as shown in the following example:
for client in &clients {
    client.send(CreateDelta<GameState>.clone())?;
}

The problem is that the CreateDelta struct does not implement the Clone trait.
Is there a reason why the Clone trait is not implemented? If so, what would be the proper way of handling such case?
Thanks a lot! :)

Hey!
There isn't a particular reason, so if there is a good reason to add Clone we can.
I think that a game would want to avoid unnecessary copies though, so I only want to add these bounds if they are necessary.

It sounds like in your case you're sending the same exact state to many clients?

Are you sending the data over a network? If you, I'd imagine you'd want to

Serialize state into bytes Vec<u8>
Send those bytes over the network to each client, without cloning.

i.e. something like:
let bytes: Vec<u8> = serialize_my_state(&game_state);
for client in &clients {
    client.send(&bytes);
}

If you truly needed to clone you could just do it yourself.
let state: CreatedDelta<GameState> = get_delta();
let state_cloned = CreatedDelta {
    delta: state.delta.clone(),
    did_change: state.delta.did_change
}

So yeah.. If your use case truly requires cloning then I'm happy to add a Clone impl.
If it doesn't require it then I'd prefer to avoid the impl and instead encourage people to avoid cloning.
I'd love to hear more details about whether or not this helps with your use case.
Cheers!

Hi!
My use case does require me to clone the delta but I didn't realize I can construct the clone on my own. That solves all the problem! Thanks a lot!
I'll close the issue now!

authors: MarkintoshZ chinedufn

repo: chinedufn/dipa


text:
Dev/mar bi/39 hero component

Second trial :two:
Happy to introduce ... Hero component.
Now every page has it's own Hero! :fireworks:
Now we have a folder for images in \src
Images are loaded as components. I used recommended by gatsby way to load images.
https://www.gatsbyjs.org/docs/adding-images-fonts-files/
The image used for Hero of the main page background is free even for commercial use and doesn't need any attribution. (CC0 Creative Commons)
https://pixabay.com/en/graduation-square-academic-cap-1969236/

closes #39


text:
Add the request logger middleware for backend

Task Description
Add the request logger middleware for backend...
Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.
Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Closed by #99

authors: jaceksupernak uwojeyamudiaga


text:
Support ARM builds

Currently our attempts to build whisper on ARM-based computers fails. Apparently, this is due to the use of Intel-specific emmintrin.h library in the codebase as in the following:
#include <emmintrin.h>
What can we do to build and use whisper on ARM-based computers? Is it possible to isolate those lines without changing the functionality?

Had a similar problem and decided to remove line which contained the include.
Was able to build Veer-ISS and had no problems yet, but I have to say that I don't use the SOFTFLOAT feature.

authors: dlschmidt doganulus

repo: chipsalliance/VeeR-ISS


text:
undefined symbol: _ZN5Yosys8Frontend7executeESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPNS_5RTLIL6DesignE

Using version 3d041dfdcc81082ae19af8a22a01200387747baa
OS= CentOS Linux release 7.9.2009
I am running Centos7 and I was able to compile and install as reported here #1826. However, I get the message undefined symbol: _ZN5Yosys8Frontend7executeESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPNS_5RTLIL6DesignE
when  I try to load the module in Yosys.
Yosys 0.13+15 (git sha1 bc027b2ca, gcc 8.3.1 -fPIC -Os)

ERROR: Can't load module `./systemverilog': /my_path/OpenROAD-flow-scripts/tools/install/yosys/bin/../share/yosys/plugins/systemverilog.so: undefined symbol: _ZN5Yosys8Frontend7executeESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPNS_5RTLIL6DesignE

Any hint what is going on?

It means that the plugin is referencing to _ZN5Yosys8Frontend7executeESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPNS_5RTLIL6DesignE symbol that is not in the yosys binary.
echo "_ZN5Yosys8Frontend7executeESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPNS_5RTLIL6DesignE" | c++filt
Yosys::Frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, Yosys::RTLIL::Design*)

Most probably it means that the signature changed.
The pinned version to this repo is currently https://github.com/YosysHQ/yosys/tree/8b2a0010216f9a15c09bd2f4dc63691949b126df which is newer (0.33+34) so I would suggest using a newer yosys version.

I get the following error message while trying to use it with the latest version of Yosys (b84ed5d3ad2ac8b533e1d6a83dbdb6d5c2be9ce7). I am running ./build_binaries.sh -y. My version of the plugin is  bc99d465403d663bffa9f91d36e3b16a5cc79a6c
+ make -C /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog install -j8
make: Entering directory `/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog'
mkdir -p /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin
PKG_CONFIG_PATH=/home/new_user/tmp_compile/UHDM/synlig/image/lib/pkgconfig:/cad/verilator/v5.002/share/pkgconfig PKG_CONFIG_PATH_FOR_TARGET=/home/new_user/tmp_compile/UHDM/synlig/image/lib/pkgconfig: pkg-config --cflags Surelog
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_ast.cc.o /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.cc
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_ast_frontend.cc.o /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast_frontend.cc
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_common_frontend.cc.o /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_common_frontend.cc
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_surelog_ast_frontend.cc.o /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_surelog_ast_frontend.cc
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/const2ast.cc.o /home/new_user/tmp_compile/UHDM/synlig/third_party/yosys_mod/const2ast.cc
-I/home/new_user/tmp_compile/UHDM/synlig/image/include
g++ -I../../third_party/yosys_mod -Wall -Wextra -ggdb -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/share/yosys/include -MD -MP -D_YOSYS_ -fPIC -I~/tmp_compile/openroad-flow-branch-smic018/tools/install/yosys/include -std=c++11 -Os -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_GLOB -DYOSYS_ENABLE_ZLIB -I/usr/include/tcl8.5 -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER   -std=c++17 -Wall -W -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I/home/new_user/tmp_compile/UHDM/synlig/image/include     -MMD -c -o /home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/simplify.cc.o /home/new_user/tmp_compile/UHDM/synlig/third_party/yosys_mod/simplify.cc
In file included from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_surelog_ast_frontend.cc:20:
/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.h:4:10: fatal error: frontends/ast/ast.h: No such file or directory
    4 | #include "frontends/ast/ast.h"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_surelog_ast_frontend.cc.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_common_frontend.h:20,
                 from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_common_frontend.cc:20:
/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.h:4:10: fatal error: frontends/ast/ast.h: No such file or directory
    4 | #include "frontends/ast/ast.h"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /home/new_user/tmp_compile/UHDM/synlig/third_party/yosys_mod/const2ast.cc:41:
/home/new_user/tmp_compile/UHDM/synlig/third_party/yosys_mod/const2ast.h:4:10: fatal error: frontends/ast/ast.h: No such file or directory
    4 | #include "frontends/ast/ast.h"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_common_frontend.cc.o] Error 1
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/const2ast.cc.o] Error 1
/home/new_user/tmp_compile/UHDM/synlig/third_party/yosys_mod/simplify.cc:29:10: fatal error: kernel/log.h: No such file or directory
   29 | #include "kernel/log.h"
      |          ^~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/simplify.cc.o] Error 1
In file included from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.cc:12:
/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.h:4:10: fatal error: frontends/ast/ast.h: No such file or directory
    4 | #include "frontends/ast/ast.h"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_ast.cc.o] Error 1
In file included from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_common_frontend.h:20,
                 from /home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast_frontend.cc:22:
/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog/uhdm_ast.h:4:10: fatal error: frontends/ast/ast.h: No such file or directory
    4 | #include "frontends/ast/ast.h"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/new_user/tmp_compile/UHDM/synlig/build/systemverilog-plugin/uhdm_ast_frontend.cc.o] Error 1
make: Leaving directory `/home/new_user/tmp_compile/UHDM/synlig/frontends/systemverilog'

I do see the header files in the include subdirectory of the Yosys installation directory. Any idea what is going on?

looks like the issue is reported in #1961

Yes, it will be fixed via #2008

This is fixed with the latest version.

authors: alaindargelas gkamendje pgielda

repo: chipsalliance/synlig


text:
Assignment to multidimensional vector with typedef is broken

Hello.
I found that the tag 2023-10-26-3d86f91 handles assignment to multidimensional vectors incorrectly if one of their dimensions comes from a typedef.
(Compare commits: https://github.com/chipsalliance/synlig/compare/2023-10-24-dd28e6d...2023-10-26-3d86f91)
Test Case
// vector_test.sv

module vector_test(
    input logic [3:0] a,
    input logic [3:0] b,
    output logic [1:0][3:0] out
);
    typedef logic [3:0] logic4;

    logic4 [1:0] vector2x4;
    assign vector2x4[0] = a;
    assign vector2x4[1] = b;
    // expected bbbbaaaa
    // received 0000xxba

    assign out = vector2x4;

endmodule

# vector_test.tcl

rename eval tcl_eval

yosys -import
plugin -i systemverilog
yosys -import

read_systemverilog -dump_ast1 vector_test.sv
prep

eval -set a 1 -set b 2 -set-undef vector_test
# expected 00100001, received 0000xx01

Good AST (generated by 2023-10-24-dd28e6d)
AST_MODULE <vector_test.sv:2.1-15.10> [0x55ed1043c990] str='\vector_test'
  AST_TYPEDEF <vector_test.sv:7.13-7.24> [0x55ed103bca40] str='\logic4'
    AST_WIRE <vector_test.sv:7.13-7.24> [0x55ed1041a320] logic basic_prep range=[3:0]
      AST_RANGE <vector_test.sv:7.19-7.24> [0x55ed10496330] basic_prep range=[3:0] in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed105cac30] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10323d10] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:3.23-3.24> [0x55ed10185490] str='\a' input logic port=1 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:3.17-3.22> [0x55ed105a8270] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10185680] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10291010] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:4.23-4.24> [0x55ed101f61c0] str='\b' input logic port=2 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:4.17-4.22> [0x55ed104964a0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed101bacf0] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed102e4be0] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:5.29-5.32> [0x55ed104c3af0] str='\out' output logic port=3 multirange=[ 0 4 0 2 ] multirange_swapped=[ 0 0 ]
    AST_RANGE <vector_test.sv:0.0-0.0> [0x55ed105163c0] range=[7:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10462c90] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed104217d0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_WIRE <vector_test.sv:9.18-9.27> [0x55ed105a8080] str='\vector2x4' logic basic_prep range=[3:0] multirange=[ 0 4 0 4 ] multirange_swapped=[ 0 0 ]
    ATTR \wiretype:
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed100fd440 -> 0x55ed1041a320] str='\logic4' bits='01011100011011000110111101100111011010010110001100110100'(56) basic_prep range=[55:0] int=1734959924 in_param
    AST_RANGE <vector_test.sv:0.0-0.0> [0x55ed0fd47e30] range=[15:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed105a7070] bits='00000000000000000000000000001111'(32) signed range=[31:0] int=15 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed104f6410] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_ASSIGN <vector_test.sv:10.12-10.28> [0x55ed101fe380]
    AST_IDENTIFIER <vector_test.sv:10.12-10.24> [0x55ed101cd5c0] str='\vector2x4' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x55ed1012b360] in_lvalue
        AST_SUB <vector_test.sv:0.0-0.0> [0x55ed101551b0] in_lvalue
          AST_MUL <vector_test.sv:0.0-0.0> [0x55ed0fd31690] in_lvalue
            AST_ADD <vector_test.sv:0.0-0.0> [0x55ed10312c50] in_lvalue
              AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed104f6560] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
              AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10582a30] bits='00000000000000000000000000000001'(32) range=[31:0] int=1 in_lvalue
            AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10312b00] bits='00000000000000000000000000000100'(32) range=[31:0] int=4 in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed0fd31540] bits='00000000000000000000000000000001'(32) range=[31:0] int=1 in_lvalue
        AST_MUL <vector_test.sv:0.0-0.0> [0x55ed10582b80] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10155060] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed1012b210] bits='00000000000000000000000000000100'(32) range=[31:0] int=4 in_lvalue
    AST_IDENTIFIER <vector_test.sv:10.27-10.28> [0x55ed0fd045a0] str='\a'
  AST_ASSIGN <vector_test.sv:11.12-11.28> [0x55ed0fe62c00]
    AST_IDENTIFIER <vector_test.sv:11.12-11.24> [0x55ed10184ee0] str='\vector2x4' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x55ed10579ab0] in_lvalue
        AST_SUB <vector_test.sv:0.0-0.0> [0x55ed101a9930] in_lvalue
          AST_MUL <vector_test.sv:0.0-0.0> [0x55ed10138af0] in_lvalue
            AST_ADD <vector_test.sv:0.0-0.0> [0x55ed1046ccd0] in_lvalue
              AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10509c60] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
              AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed1046ce20] bits='00000000000000000000000000000001'(32) range=[31:0] int=1 in_lvalue
            AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed10138c40] bits='00000000000000000000000000000100'(32) range=[31:0] int=4 in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed101a9a80] bits='00000000000000000000000000000001'(32) range=[31:0] int=1 in_lvalue
        AST_MUL <vector_test.sv:0.0-0.0> [0x55ed103093a0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed0fe55140] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55ed103094f0] bits='00000000000000000000000000000100'(32) range=[31:0] int=4 in_lvalue
    AST_IDENTIFIER <vector_test.sv:11.27-11.28> [0x55ed104d88a0] str='\b'
  AST_ASSIGN <vector_test.sv:13.12-13.27> [0x55ed1018d600]
    AST_IDENTIFIER <vector_test.sv:13.12-13.15> [0x55ed0fe52300] str='\out' in_lvalue
    AST_IDENTIFIER <vector_test.sv:13.18-13.27> [0x55ed10177120] str='\vector2x4'

Bad AST (generated by 2023-10-26-3d86f91)
AST_MODULE <vector_test.sv:2.1-15.10> [0x56208f515930] str='\vector_test'
  AST_TYPEDEF <vector_test.sv:7.13-7.24> [0x56208f4d6780] str='\logic4'
    AST_WIRE <vector_test.sv:7.13-7.24> [0x56208f4f3290] logic basic_prep range=[3:0]
      AST_RANGE <vector_test.sv:7.19-7.24> [0x56208ef2b510] basic_prep range=[3:0] in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f5b5410] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f1d3d80] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:3.23-3.24> [0x56208f4ad710] str='\a' input logic port=1 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:3.17-3.22> [0x56208f419680] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f400060] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f539b60] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:4.23-4.24> [0x56208f2cf3d0] str='\b' input logic port=2 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:4.17-4.22> [0x56208f4b4bb0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f5a9600] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f508b40] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:5.29-5.32> [0x56208f340920] str='\out' output logic port=3 multirange=[ 0 2 0 4 ] multirange_swapped=[ 0 0 ]
    AST_RANGE <vector_test.sv:0.0-0.0> [0x56208f67eed0] range=[7:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f229b90] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f22c630] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_WIRE <vector_test.sv:9.18-9.27> [0x56208f3aad00] str='\vector2x4' logic basic_prep range=[3:0] multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    ATTR \wiretype:
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f5ca0f0 -> 0x56208f4f3290] str='\logic4' bits='01011100011011000110111101100111011010010110001100110100'(56) basic_prep range=[55:0] int=1734959924 in_param
    AST_RANGE <vector_test.sv:7.19-7.24> [0x56208f368de0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f294010] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f510ff0] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_ASSIGN <vector_test.sv:10.12-10.28> [0x56208f5b1840]
    AST_IDENTIFIER <vector_test.sv:10.12-10.24> [0x56208f43bad0] str='\vector2x4' in_lvalue
      AST_RANGE <vector_test.sv:10.12-10.24> [0x56208f59caa0] in_lvalue
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f497330] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
    AST_IDENTIFIER <vector_test.sv:10.27-10.28> [0x56208f2d7590] str='\a'
  AST_ASSIGN <vector_test.sv:11.12-11.28> [0x56208ee0af10]
    AST_IDENTIFIER <vector_test.sv:11.12-11.24> [0x56208f27c600] str='\vector2x4' in_lvalue
      AST_RANGE <vector_test.sv:11.12-11.24> [0x56208eddd7c0] in_lvalue
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x56208f2a67d0] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
    AST_IDENTIFIER <vector_test.sv:11.27-11.28> [0x56208f6817f0] str='\b'
  AST_ASSIGN <vector_test.sv:13.12-13.27> [0x56208f5b1140]
    AST_IDENTIFIER <vector_test.sv:13.12-13.15> [0x56208ee0f610] str='\out' in_lvalue
    AST_IDENTIFIER <vector_test.sv:13.18-13.27> [0x56208ee0e270] str='\vector2x4'

@sifferman to help diagnose, can you locally undo the section of the PR from line 4428 to 4451?
https://github.com/chipsalliance/synlig/pull/2072/files#diff-514c4dbb1f1744bd9f6c431e69ecff166762ef801400abec69d89c7b4dc80431L4438
This is the resulting code:
void UhdmAst::process_logic_var()
{
    current_node = make_ast_node(AST::AST_WIRE);
    current_node->is_logic = true;
    std::vector<AST::AstNode *> packed_ranges;   // comes before wire name
    std::vector<AST::AstNode *> unpacked_ranges; // comes after wire name
    // TODO: add const attribute, but it seems it is little more
    // then just setting boolean value
    // current_node->is_const = vpi_get(vpiConstantVariable, obj_h);
    visit_one_to_one({vpiTypespec}, obj_h, [&](AST::AstNode *node) {
        if (node->str.empty()) {
            // anonymous typespec, move the children to variable
            current_node->type = node->type;
            current_node->children = std::move(node->children);
            //copy_packed_unpacked_attribute(node, current_node);
        } else {
            auto wiretype_node = new AST::AstNode(AST::AST_WIRETYPE);
            wiretype_node->str = node->str;
            current_node->children.push_back(wiretype_node);
            current_node->is_custom_type = true;
        }
        current_node->is_signed = node->is_signed;
        delete node;
    });
    if (auto ref_typespec_h = vpi_handle(vpiTypespec, obj_h)) {
        if (auto typespec_h = vpi_handle(vpiActual, ref_typespec_h)) {
            visit_one_to_many({vpiRange}, typespec_h, [&](AST::AstNode *node) { packed_ranges.push_back(node); });
            vpi_release_handle(typespec_h);
        } else {
            visit_one_to_many({vpiRange}, obj_h, [&](AST::AstNode *node) { packed_ranges.push_back(node); });
        }
        vpi_release_handle(ref_typespec_h);
    } else {
        visit_one_to_many({vpiRange}, obj_h, [&](AST::AstNode *node) { packed_ranges.push_back(node); });
    }
    visit_default_expr(obj_h);
    add_multirange_wire(current_node, packed_ranges, unpacked_ranges);
}

That change restores the multi-dimension of  vector2x4.
What else is incorrect?

@sifferman , can you answer the question above?

Thanks for following up, @alaindargelas.
I cloned alaindargelas/synlig/stable_rs, undid the specified section from the PR, then built.
Now the example I provided works, but there are still issues. Here are a few test cases that still do not work:
Vector Inside Struct
module vector_test(
    input logic [3:0] a,
    input logic [3:0] b,
    output logic [1:0][3:0] out
);

    struct packed {
        logic [1:0][3:0] vector2x4;
    } s;

    assign s.vector2x4[0] = a;
    assign s.vector2x4[1] = b;

    assign out = s.vector2x4;

endmodule

AST_MODULE <vector_test.sv:2.1-17.10> [0x561c02a60110] str='\vector_test'
  AST_WIRE <vector_test.sv:3.23-3.24> [0x561c02759380] str='\a' input logic port=1 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:3.17-3.22> [0x561c0297bec0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02849800] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c0293caa0] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:4.23-4.24> [0x561c0276a510] str='\b' input logic port=2 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:4.17-4.22> [0x561c028c9a10] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02336920] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02333e00] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:5.29-5.32> [0x561c0277aaf0] str='\out' output logic port=3 multirange=[ 0 2 0 4 ] multirange_swapped=[ 0 0 ]
    AST_RANGE <vector_test.sv:0.0-0.0> [0x561c028f7fa0] range=[7:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c027600d0] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02aa0930] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_STRUCT <vector_test.sv:10.7-10.8> [0x561c02822c70] str='\s' basic_prep
    AST_STRUCT_ITEM <vector_test.sv:9.26-9.35> [0x561c0299fd50] str='vector2x4' logic basic_prep range=[7:0] multirange=[ 0 2 0 4 ] multirange_swapped=[ 0 0 ]
  AST_ASSIGN <vector_test.sv:12.12-12.30> [0x561c028c0220]
    AST_IDENTIFIER <vector_test.sv:12.14-12.23> [0x561c029b8840] str='\s' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x561c029aa610] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x561c0286da90] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c029272e0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a5c750] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x561c0285cf70] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a3a6e0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a59040] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
    AST_IDENTIFIER <vector_test.sv:12.29-12.30> [0x561c02844080] str='\a'
  AST_ASSIGN <vector_test.sv:13.12-13.30> [0x561c02769200]
    AST_IDENTIFIER <vector_test.sv:13.14-13.23> [0x561c02aa2610] str='\s' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x561c0296d1c0] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x561c0281ea00] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02931590] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a9d120] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x561c02982920] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c0234b7c0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02909b30] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
    AST_IDENTIFIER <vector_test.sv:13.29-13.30> [0x561c02798b90] str='\b'
  AST_ASSIGN <vector_test.sv:15.12-15.29> [0x561c02853930]
    AST_IDENTIFIER <vector_test.sv:15.12-15.15> [0x561c0279d640] str='\out' in_lvalue
    AST_IDENTIFIER <vector_test.sv:15.18-15.19> [0x561c02a5ef40] str='\s' basic_prep
      AST_RANGE <vector_test.sv:0.0-0.0> [0x561c027df530]
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02938bd0] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02886ff0] bits='00000000000000000000000000000000'(32) signed range=[31:0]
  AST_WIRE <vector_test.sv:0.0-0.0> [0x561c029d3a40] str='\s' logic range=[-1:0] multirange=[ 0 8 ] multirange_swapped=[ 0 ]
    ATTR \wiretype:
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c0299b4b0 -> 0x561c02822c70] str='\s' bits='0101110001110011'(16) range=[15:0] int=23667 in_param
    AST_RANGE <vector_test.sv:0.0-0.0> [0x561c0281ee80] range=[7:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a08760] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c02a5afd0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
    AST_RANGE <vector_test.sv:0.0-0.0> [0x561c02a36db0] basic_prep range=[7:0]
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c0272d510] bits='00000000000000000000000000000111'(32) signed basic_prep range=[31:0] int=7
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x561c0281bd50] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0]

Typedef Inside Struct
Note: This test case did not work before 2023-10-26-3d86f91.
module vector_test(
    input logic [3:0] a,
    input logic [3:0] b,
    output logic [1:0][3:0] out
);
    typedef logic [3:0] logic4;

    struct packed {
        logic4 [1:0] vector2x4;
    } s;

    assign s.vector2x4[0] = a;
    assign s.vector2x4[1] = b;

    assign out = s.vector2x4;

endmodule

AST_MODULE <vector_test.sv:2.1-18.10> [0x55bc42e32380] str='\vector_test'
  AST_TYPEDEF <vector_test.sv:7.13-7.24> [0x55bc42db5d80] str='\logic4'
    AST_WIRE <vector_test.sv:7.13-7.24> [0x55bc42f47d30] logic
      AST_RANGE <vector_test.sv:7.19-7.24> [0x55bc42e63ad0] in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc4272f660] bits='00000000000000000000000000000011'(32) signed range=[31:0] int=3 in_param
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc4272f170] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_WIRE <vector_test.sv:3.23-3.24> [0x55bc42c36750] str='\a' input logic port=1 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:3.17-3.22> [0x55bc42f3b4f0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42ddfb90] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42f88530] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:4.23-4.24> [0x55bc42f42580] str='\b' input logic port=2 multirange=[ 0 4 ] multirange_swapped=[ 0 ]
    AST_RANGE <vector_test.sv:4.17-4.22> [0x55bc4282e3b0] basic_prep range=[3:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e70cc0] bits='00000000000000000000000000000011'(32) signed basic_prep range=[31:0] int=3 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42d31430] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0] in_param
  AST_WIRE <vector_test.sv:5.29-5.32> [0x55bc42e7de60] str='\out' output logic port=3 multirange=[ 0 2 0 4 ] multirange_swapped=[ 0 0 ]
    AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42ea7e80] range=[7:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42c48de0] bits='00000000000000000000000000000111'(32) signed range=[31:0] int=7 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e6dab0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
  AST_STRUCT <vector_test.sv:11.7-11.8> [0x55bc42e2dd20] str='\s' basic_prep
    AST_STRUCT_ITEM <vector_test.sv:10.22-10.31> [0x55bc42c50ca0] str='vector2x4' logic basic_prep range=[1:0]
  AST_ASSIGN <vector_test.sv:13.12-13.30> [0x55bc42d48810]
    AST_IDENTIFIER <vector_test.sv:13.14-13.23> [0x55bc42d20550] str='\s' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42f32630] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x55bc42f84d20] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e207f0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e92120] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x55bc42cc7180] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42d14900] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42f47690] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
    AST_IDENTIFIER <vector_test.sv:13.29-13.30> [0x55bc42c62740] str='\a'
  AST_ASSIGN <vector_test.sv:14.12-14.30> [0x55bc42c47f00]
    AST_IDENTIFIER <vector_test.sv:14.14-14.23> [0x55bc42df1720] str='\s' basic_prep in_lvalue
      AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42c83ef0] in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x55bc4283cf40] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42d6ec40] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e54de0] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
        AST_ADD <vector_test.sv:0.0-0.0> [0x55bc42e2e730] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42c807e0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_lvalue
          AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e6a530] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_lvalue
    AST_IDENTIFIER <vector_test.sv:14.29-14.30> [0x55bc42e5d430] str='\b'
  AST_ASSIGN <vector_test.sv:16.12-16.29> [0x55bc42d82b90]
    AST_IDENTIFIER <vector_test.sv:16.12-16.15> [0x55bc42e95f60] str='\out' in_lvalue
    AST_IDENTIFIER <vector_test.sv:16.18-16.19> [0x55bc42e246c0] str='\s' basic_prep
      AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42f855d0]
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc4282a930] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1
        AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e1ef60] bits='00000000000000000000000000000000'(32) signed range=[31:0]
  AST_WIRE <vector_test.sv:0.0-0.0> [0x55bc4281cb00] str='\s' logic range=[-1:0] multirange=[ 0 2 ] multirange_swapped=[ 0 ]
    ATTR \wiretype:
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc428319e0 -> 0x55bc42e2dd20] str='\s' bits='0101110001110011'(16) range=[15:0] int=23667 in_param
    AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42d06650] range=[1:0] in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e191b0] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1 in_param
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42f443e0] bits='00000000000000000000000000000000'(32) signed range=[31:0] in_param
    AST_RANGE <vector_test.sv:0.0-0.0> [0x55bc42de1b40] basic_prep range=[1:0]
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42d57e90] bits='00000000000000000000000000000001'(32) signed basic_prep range=[31:0] int=1
      AST_CONSTANT <vector_test.sv:0.0-0.0> [0x55bc42e34600] bits='00000000000000000000000000000000'(32) signed basic_prep range=[31:0]

Making slow progress on this case,
I fixed the bugs in the plugin code that fix the size of the vector. The hierarchical reference of the struct member still eludes me, the code seems to not support struct member sizing while walking the hierarchical path

Fixed in https://github.com/alaindargelas/synlig/tree/stable_rs

authors: alaindargelas sifferman


text:
Feature Request: Enforce Password Change and Strengthen Password Policy

Hi all,
ChirpStack currently does not prompt users to change default passwords after the initial setup, leaving many public instances vulnerable. Additionally, weak passwords, including single-character ones, are allowed, which may lead to comprising security.
So it would be good if:

It is required to password change upon first login.
Enforce a strong password policy:

Minimum length: 8–12 characters.
Include uppercase, lowercase, numbers, and special characters.

These changes will enhance security and reduce risks. Thank you for considering this request.

So it would be good if:
1. It is required to password change upon first login.

It's been a while since I've done an install with a clean database, but doesn't the admin user require a new password on first login? Another popular approach is to generate a unique admin password on first run and print it on the console/logs after startup. If you're referring to user passwords, I prefer to dole out strong passwords from the start and would prefer that to be an available option without forcing unnecessary rotations.

2. Enforce a strong password policy:

   * Minimum length: 8–12 characters.
   * Include uppercase, lowercase, numbers, and special characters.

Please don't do this. It's in direct opposition to NIST password guidelines and frequently leads to poor password security practices.
https://pages.nist.gov/800-63-4/sp800-63b/passwords/
https://cybersecuritynews.com/nist-rules-password-security/

repo: chirpstack/chirpstack


text:
MyGet nightly build feed

More an idea, we could setup CI to push the develop branch to a MyGet feed, if that isn't done already.

Good idea but sadly there is no free plan 😞

@chkr1011 I was having a look at it and you could get it. I really would like to have that because it would make testing of changes in dev branch a lot easier....
https://www.myget.org/opensource
if you are okay with it i would sign up for this project but I think you should do it as you are the owner of this project

Ah that is interesting. I will sign up and fill out the form. We will see what happens.

authors: JanEggers chkr1011 israellot


text:
RFM - etcher

Current Maintainer

[x] I am the maintainer of the package and wish to pass it to someone else;

Checklist

[x] Issue title starts with 'RFM - '

Existing Package Details

Package URL: https://chocolatey.org/packages/etcher
Package source URL: https://github.com/majkinetor/au-packages/tree/master/etcher
Notes
Package is currently embedded and got larger then 200MB. I don't want to maintain non-embedded packages, plus I don't use etcher, so I would like someone else to take over.

I am willing to take over, can you add mkevenaar please?

Added. Thanks.

authors: majkinetor mkevenaar


text:
(keepass-langfiles) release 2.57 fixes #2527

Description
Updated README.md regex to https and changed the zip extension to 7z.
Added all lngx files in keepass_2.x_langfiles.7z.
Motivation and Context
Language files are outdated since 5 years.
https://github.com/chocolatey-community/chocolatey-packages/issues/2527
How Has this Been Tested?
Referred to README.md
No testing environment
Types of changes

[x] Update
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[x] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[ ] I have updated the package description and it is less than 4000 characters.
[x] All files are up to date with the latest [Contributing Guidelines] (https://github.com/chocolatey-community/chocolatey-packages/blob/master/CONTRIBUTING.md)
[ ] The added/modified package passed install/uninstall in the Chocolatey Test Environment (https://github.com/chocolatey-community/chocolatey-test-environment/).
[x] The changes only affect a single package (not including meta package).

:x: Package verification failed, please review the Appveyor Logs and the provided Artifacts before requesting a human reviewer to take a look.


text:
(php) Package won't upgrade or uninstall - Path Bind Error

I am experiencing the same as @Jimmy03
see log at https://github.com/chocolatey/choco/issues/1574

I tried uninstalling and upgrading from PHP 7.2.3 > 7.2.5 https://chocolatey.org/packages/php
I'm using Win 10 x64 running chocolatey v0.10.11
Other packages work fine, only PHP has the problem
Here's the error msg from running chocolatey uninstall php --debug --trace:
ERROR: Cannot bind argument to parameter 'Path' because it is null.
 at Uninstall-ChocolateyZipPackage, C:\ProgramData\chocolatey\helpers\functions\UnInstall-ChocolateyZipPackage.ps1: line 71
at UninstallPackage, C:\ProgramData\chocolatey\lib\php\tools\helpers.ps1: line 77
at <ScriptBlock>, C:\ProgramData\chocolatey\lib\php\tools\chocolateyUninstall.ps1: line 9
at <ScriptBlock>, C:\ProgramData\chocolatey\helpers\chocolateyScriptRunner.ps1: line 48
at <ScriptBlock>, <No file>: line 1

Can u provide install log?

@majkinetor a log is a available at chocolatey/choco#1574

Install log please, not uninstall log.

Seing as it fails on the uninstall with the function Uninstall-ChocolateyZipPackage (which is also used when upgrading), I would say this is related to a bug in chocolatey with a issue already opened there:
https://github.com/chocolatey/choco/issues/1550

Yes same issue as mine.
Let me know if any other logs are needed.

ShadowDancer437  Sharak • 3 months ago
Looks like the problem is actually in the uninstall script from Chocolatey.
https://github.com/chocolat...
As a workaround (until this is fixed in Chocolatey), if you wish to upgrade now:

Rename C:/tools/php72 to C:/tools/php72.bak;
Execute choco uninstall php -n -y (-n to skip executing the uninstall script);
Install the new version with choco install php -y;
Migrate C:/tools/php72.bak/php.ini if you manually changed it;
Remove C:/tools/php72.bak.

This worked for me, but take extra care if you follow these instructions.

I think that is good way to go until this is fixed.

The instructions at https://github.com/chocolatey/chocolatey-coreteampackages/issues/1047#issuecomment-405096203 worked for me:
cd c:\tools
move php72 php72.bak
choco uninstall php -n -y
choco install php -y
:: only if you want to keep your old php.ini file:
xcopy /y php72.bak\php.ini php72\
rmdir /s /q php72.bak

Thanks for the script @rasa

Since upstream ticket is fixed, I guess this will start to work as usual on next chocolatey version.

Just to give you some feedback: I've just updated to the latest beta version of chocolatey, and this makes the update work again :)

I had the problem again, and php73 is now the latest version:
cd c:\tools
move php73 php73.bak
choco uninstall php -n -y
choco install php -y
:: only if you want to keep your old php.ini file:
xcopy /y php73.bak\php.ini php73\
rmdir /s /q php73.bak

authors: AdmiringWorm Jimmy03 NicoHaase jfranciscos4 majkinetor rasa somombo

repo: chocolatey/chocolatey-coreteampackages


text:
chocolatey-uninstall.extension depends on unreleased chocolatey-core.extension v1.0

I have a CI build that uses Chocolatey to install Inno Setup. Its package depends on the chocolatey-uninstall.extension package, which was just updated yesterday to depend on the chocolatey-core.extension package (weirdly, there aren't any previous versions listed).
However, the new chocolatey-core.extension package dependency is at v1.0, and the latest available version is v0.1.3. Most of the chocolatey-uninstall.extension page is filled with huge warnings about build failures, so I'm surprised that a) the package was still allowed to be published and break dependent workflows such as mine, and b) nobody else seems to have filed a bug report about it.

@chocolatey/chocolateycommunitypackages folks - looks like there is a mistake in the latest version. @gep13 let's not unlist the version before deprecation before the new one is approved.

@WrinklyNinja the new deprecated version of the package has not yet been approved - the issue is the older versions have been unlisted. It looks like folks got a little ahead of themselves.

I just relisted https://chocolatey.org/packages/chocolatey-uninstall.extension/1.1.0, so everything should work again.
@majkinetor @gep13 @AdmiringWorm something you will need to unlist once the other version gets fixed and approved.

Yep, that seems to have fixed things, thanks for the quick resolution.

@WrinklyNinja to provide more detail - a package dependency against a version will grab that version, even when it is unlisted (soft-deleted). If it is a versionless dependency, it grabs the latest version. If all versions are unlisted, it gets the latest unlisted dependency, even one in moderation. The current version in moderation is broken and has not been published, so it was not allowed to be published yet. But because the other approved versions were prematurely unlisted, it caused the issue you are seeing.

Reopening because the one in moderation does need to be fixed.

@WrinklyNinja apologies for the inconvenience.  This required dependency package has been pushed, and the tests have been set to re-run on the uninstall extension, which should put it through the moderation queue.  Please let me know if you continue to have issues.
I am going to close this issue for now, but feel free to re-open if you still have an issue.

authors: WrinklyNinja ferventcoder gep13


text:
(maint) Remove GitHub template security question

Description Of Changes
Remove the Security question from the issue template options. This was noticed here.
Note that this can't be tested so no testing has been done.
Motivation and Context
The security question is added automatically from the organizational template Security policy.
Testing

[ ] I have previewed these changes using the Docker Container or another method before submitting this pull request.

Change Types Made

[ ] Minor documentation fix (typos etc.).
[ ] Major documentation change (refactoring, reformatting or adding documentation to existing page).
[ ] New documentation page added.

Change Checklist

[ ] Requires a change to menu structure (top or left hand side)/
[ ] Menu structure has been updated

Related Issue
N/A

@pauby thanks for getting that fixed up!

repo: chocolatey/docs


text:
SearchLoop#hasReachLimit() and user interruption

... may lead to wrong message ("unsatisfiable" instead of "unknown")

Capturing a user interruption could be done directly in the search loop instead of in the AbstractProblem.
Doing so, the message would be correct.
However, this requires to add a ShutdownHook in the SearchLoop, which may not be very relevant.


text:
Restructured asapdiscovery-simulation to group all alchemy components together

Description
Restructured alchemy components in asapdiscovery-simulation to be colocated.
May consider putting alchemy into its own subpackage, dependent on alchemiscale and openfe.
Also, consolidated CLI components for asap-alchemy CLI into a single file; separation didn't appear to give much advantage.
Status

[ ] Ready to go

@ijpulidos what do you think of this? Does it make sense to keep alchemy in the asapdiscovery-simulation subpackage, or should we split it out given its dependency load compared to vanilla MD needs?

Codecov Report

Merging #471 (3b4b2c2) into main (83e187e) will decrease coverage by 0.03%.
The diff coverage is 100.00%.

Additional details and impacted files

We decided today to split the alchemy submodule into its own subpackage, asapdiscovery-alchemy. Working on this now before this PR is considered ready to review/merge.

@ijpulidos I think this is now ready for review!

We are getting a seg fault for the Linux tests https://github.com/choderalab/asapdiscovery/actions/runs/6194417244/job/16839137510?pr=471#step:7:1037

Looks like CI is failing on asapdiscovery-modeling tests: https://github.com/choderalab/asapdiscovery/actions/runs/6202725486/job/16842054146?pr=471#step:7:549
Unrelated to this PR. Will proceed with merge.

authors: codecov-commenter dotsdl ijpulidos

repo: choderalab/asapdiscovery


text:
fixes local import error

Description
Fragalysis code was failing due to a broken local import, this PR resolves the issue. Smallest PR of all time, possibly. Not sure if this structure is intended; the error is likely a result of the refactor.
Todos

[x] add a "." to schema import so that the module can be found on import

Status

[x] Ready to go

Codecov Report

Merging #100 (1c3200f) into main (d14e6eb) will not change coverage.
The diff coverage is 0.00%.

authors: JenkeScheen codecov-commenter

repo: choderalab/covid-moonshot-ml


text:
Add a metrics plot to the detail view

The detail view must have controls for choosing time / step based x axis
It will retrive data through the API developed as a part of #58

When the view opens,

[ ] the user should see a chart and a list of checkboxes with all possible metrics of that run.
[ ] the first metric is selected (and plotted) by default.
[ ] the default x-axis view is numeric (steps) - linear
[ ] other metrics can be added to the plot by checking them
[ ] there is a radio button for the x-axis (number/date)

repo: chovanecm/sacredboard


text:
Refactor the repr for _Trochoid

Description
No dependencies required for this change. Issue "Refactor the repr for _Trochoid #117" should be fixed as described by mapping the numbers (no matter the size of self.thetas) in the list to strings, and then joining them in a str list to be returned by the repr.
Fixes # 117
Checklist

[* ] I followed the guidelines in our Contributing document
[* ] I added an explanation of my changes

Additional notes (optional)

Hey @jlonge4 thanks so much for opening a PR! :D
The change here is losing some of the key functionality that we'll need to incorporate before merging
Here's the relevant context from #117:

Basically thetas contains a list of user defined theta values such as [0, 0.1, 0.2, 0.3 ... 3.3, 3.4]. For the repr display we only want to show the first element of the list, the second element (to show the increment of thetas], and the last element so that the list would display like thetas=[0, 0.1, ... 3.4].

Let's say we have shape = Hypotrochoid(R=100, r=30, d=55, thetas=np.arange(0, 10, .1)). With the change above this will now display as
>>> print(shape)
>>> Hypotrochoid(R=100, r=30, d=55, thetas=0.0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9, 1.0, 1.1, 1.2000000000000002, 1.3, 1.4000000000000001, 1.5, 1.6, 1.7000000000000002, 1.8, 1.9000000000000001, 2.0, 2.1, 2.2, 2.3000000000000003, 2.4000000000000004, 2.5, 2.6, 2.7, 2.8000000000000003, 2.9000000000000004, 3.0, 3.1, 3.2, 3.3000000000000003, 3.4000000000000004, 3.5, 3.6, 3.7, 3.8000000000000003, 3.9000000000000004, 4.0, 4.1000000000000005, 4.2, 4.3, 4.4, 4.5, 4.6000000000000005, 4.7, 4.800000000000001, 4.9, 5.0, 5.1000000000000005, 5.2, 5.300000000000001, 5.4, 5.5, 5.6000000000000005, 5.7, 5.800000000000001, 5.9, 6.0, 6.1000000000000005, 6.2, 6.300000000000001, 6.4, 6.5, 6.6000000000000005, 6.7, 6.800000000000001, 6.9, 7.0, 7.1000000000000005, 7.2, 7.300000000000001, 7.4, 7.5, 7.6000000000000005, 7.7, 7.800000000000001, 7.9, 8.0, 8.1, 8.200000000000001, 8.3, 8.4, 8.5, 8.6, 8.700000000000001, 8.8, 8.9, 9.0, 9.1, 9.200000000000001, 9.3, 9.4, 9.5, 9.600000000000001, 9.700000000000001, 9.8, 9.9, origin=(0,0))

which has a lot of redundant information - ideally we would preserve the original if-elif-else functionality just with a cleaner implementation so that the above example would instead output as
>>> print(shape)
>>> Hypotrochoid(R=100, r=30, d=55, thetas=[0.0, 0.1, ... 9.9], origin=(0,0))

This would show the first number (the start), the second number to show what the increments are (ithe step), and then the final number (the stop)
Let me know what you think!

@chris-greening Ohhhh my fault I totally missed that! Thanks for the explanation 😆 I will have some more time tomorrow if someone else doesn't get to it first 👍🏼

Noooo totally no worries!!! You got it - truly thank you for your interest in contributing
Let me know if you need any more info/have any questions, looking forward to the update!

@chris-greening Alright my friend let's see if that gets it, let me know what you think

Ye ye ye that'll do it - thanks so much @jlonge4 !!! 😎

@chris-greening happy to help!

repo: chris-greening/spyrograph


text:
No module named logging

When I try to use the INA219 library with micropython, using a Raspberry Pi Pico, I get the "ImportError: no module named 'logging'" error. I can't seem to find the logging library anywhere so I can't manually add it. Any suggestions?

logging.py is linked in the readme, but they were broken, I have fixed them. This is the link: logging.py
Chris

This seems to have fixed the problem, thanks!


text:
add some description to readme.md

I have added a description to the README.md that is accessible to non-developers, hopefully clarifying jargon. Do you think having this explanation is of value to this project?

Closed because of version 2 release.

authors: chrisdiana yyrcat


text:
How does intero-uses-at work?

When I hit M-? on a symbol, other instances of the symbol are highlighted, and the buffer goes into read-only mode. I suspect there's some cool way to navigate between those highlighted instances, maybe even across files, but I'm not finding it by trial and error, and I'm not finding documentation. Also if there's a better way than reloading the buffer to escape intero-uses-at mode, that would be handy.

It's a small mode with n/p to jump between, RET to exit, and r to rename.

Neat!
Now that I know what it does, I may have found a small bug: the rename action does not rename something where its type is stated, only where it is defined and used.

That's right, a slight limitation of the backend engine. It doesn't take type signatures into account. However, one day I can get more info from the AST. When the current version was written, I was pretty new to the GHC API. Now, I could probably do a better job of it.

The mode doesn't seem to do anything in evil mode. n and p end up overridden by evil commands. What are they supposed to do? Perhaps I can rebind them but I can't figure out what n and p are supposed to be bound to in this mode in the first place.

authors: JeffreyBenjaminBrown chrisdone rmanne

repo: chrisdone/intero


text:
Update README.md

Fix tiny syntax error

Thank you @lkbr!

authors: chrisfosterelli lkbr

repo: chrisfosterelli/akismet-api


text:
how to chat to the previous gpt reply?

I had a look at the troubleshooting section

[x] Yes
[ ] No

Describe your problem
how to chat to the previous gpt reply? Or this is a one time conversation?

Hey @crazyxhz!
Not sure if I understand your question correctly. Is this maybe your issue?

authors: chrislemke crazyxhz

repo: chrislemke/ChatFred


text:
idea: grep in go

https://sift-tool.org/index
this is a replacement for grep, and seems like it could be a nice match for glow in some ways.
its high perf and nicely extensible.
i kind of see it as a useful tool when you need to have glow orchestrate everything, and you need to sift through lots of files
curious what you think.

It has a nice web page and shocking performance numbers, but no explanation of the search algorithm.

repo: chrislusf/glow


text:
Add report from version 0.6 to docx report

Hi
You can add the reports statistic to reports  ?
it's new feature in version 0.6

Yes, that could be done, if there is an API endpoint for it. What specific statistics are you looking for? I have used 0.6, but am unaware of any new statistics. I know there's now a "Reported" category for campaigns, but have no worked with it myself.

Got it. I will see what I can do. It should be easy to add the "reported" events. I saw that new data in GoPhish, but have not seen the reporting functionality used myself.
Looking into this now to see if I can simulate the event and figure out how it is recorded.

Hello @chrismaddalena, can we have an update on this feature so far?
Thanks a lot and great project!
Cycl0pe

@Cycl0pe I'll be working on this sometime this week. I'm going to setup a test database using the latest GoPhish and do a lot of rewriting to update GoReport and fix some issues, including adding support for the "reported email" metric. I've been traveling nearly non-stop for a while and just haven't had time to work on GoReport.

Quick update: I will be using the recently added demo instance to add new features, like this one. Should be done soon.

Sorry this took forever to get done, but life happens. This and much, much more is included in v3.0 just pushed to master.

repo: chrismaddalena/Goreport


text:
Promise function is called only once regardless of its arguments

My problem is when I call function wrapped in promiseCache with different arguments I expect it to be executed once for every unique argument. I'm not if it is a bug or I don't use it incorrectly
Here's example: http://jsfiddle.net/apuchkov/7kcs10ef/
var myApp = angular.module('myApp', ['angular-promise-cache']);

myApp
    .factory('myAwesomeModel', function ($http, promiseCache) {
        return {
            getData: function (id) {
                return promiseCache({
                    args: [id],
                    promise: function (id) {
                        $('#log').append('
Making HTTP call for id: ' + id + '
')
                        return $http.get('/echo/json/');
                    }
                });
            }
        };
    })
    .controller('myAwesomeCtrl', function ($scope, myAwesomeModel) {
        myAwesomeModel.getData(1);
        myAwesomeModel.getData(1);
        myAwesomeModel.getData(2); // I expect a second http call here
        myAwesomeModel.getData(2);
    });

Hi @apuchkov
Currently, the correct way to separate caches is by using the key parameter. In the example you posted above, one way would be to add a key argument to the promiseCache({}) method that is unique based on the argument list - such as key: 'pc_' + id

Works well with the key argument. Thanks!

authors: apuchkov chrisronline

repo: chrisronline/angular-promise-cache


text:
Already unlocked achievements popping up every time I start a game

Since the last update I've some issues with achievements.
Previously gotten achievements are displaying again everytime I load into game.
I've tried disabling retroachievemnets in retroarch etc and then re-entering my details which hasn't worked.
The achievements in question are showing up as already unlocked on the retroachievements.org website and in the retroarch menu. But as soon as a start the save game I get 3-4 popups of already unlocked achievements?
Ps. I haven't seen anyone else with this issue on the retroarch github.
Regards

Best to report this on the retroarch github as that's not something I can control through ArkOS.

Hi thanks for the reply -
It looks like they rewrote the achievements code to make it multi threaded for version 1.9.13
I can confirm this bug happens in 1.9.13 on my desktop
It doesn't seem to affect 1.9.12 on windows
What commit was Retroarch based off in arkos as it seems to have a mix of 1.9.13 features but labeled as 1.9.12
Regards

That makes sense as I always build Retroarch on the latest updates available on the day that I build it.  You can see the commit information by launching retroarch and looking at the Git version.  For the last update, the commit is 96053e14a7

Nice.  I see Retroarch is working on the issue

As soon as that's resolved, I'll get a new build out shortly afterwards

Awesome thanks :)

New update is now available with retroarch 1.9.13 that includes the fix for the issue.

Thanks - it works great :)

repo: christianhaitian/arkos


text:
[DISMISSED] change time dropdown from 15 to 30min steps

[ ] update view components (time, datetime); rename quarter to half method
[ ] write db change script to update all from timestamps from 15 to 00, and 45 to 60
[ ] check when importing from gcal, that minute is {0, 30}, otherwise... display warning, or..?

nope, we want to keep the 15min steps.

repo: christophpickl/gadsu


text:
[Bug]: Cohere Embedding

What happened?
I'm attempting to use Cohere's embeddings in chromadb but getting the attached error. Here is my code:
from chromadb.utils import embedding_functions
cohere_ef = embedding_functions.CohereEmbeddingFunction(api_key=cohere_api_key)
cohere_ef(['test'])
Any suggestions? Thanks!
Versions
Chroma v0.5.20, Python v3.10.14
Relevant log output
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[9], line 3
      1 from chromadb.utils import embedding_functions
      2 cohere_ef = embedding_functions.CohereEmbeddingFunction(api_key=cohere_api_key)
----> 3 cohere_ef(['test'])

File ~/git/infolinc-chunking-evaluation/.venv/lib/python3.10/site-packages/chromadb/api/types.py:462, in EmbeddingFunction.__init_subclass__.<locals>.__call__(self, input)
    460 result = call(self, input)
    461 assert result is not None
--> 462 return validate_embeddings(cast(Embeddings, normalize_embeddings(result)))

File ~/git/infolinc-chunking-evaluation/.venv/lib/python3.10/site-packages/chromadb/api/types.py:82, in normalize_embeddings(target)
     79     if target.ndim == 2:
     80         return list(target)
---> 82 raise ValueError(
     83     f"Expected embeddings to be a list of floats or ints, a list of lists, a numpy array, or a list of numpy arrays, got {target}"
     84 )

ValueError: Expected embeddings to be a list of floats or ints, a list of lists, a numpy array, or a list of numpy arrays, got [('response_type', 'embeddings_floats'), ('id', '1db95cbd-05b4-4081-a75d-d552124477e9'), ('embeddings', [[2.3085938, 0.04901123, -0.16

Just solved this: you must add a [2][1] at the end of the cohere embedding call to retrieve only the embeddings, which is what chroma expects.
cohere_embedding_function.py in chromadb/utils/embedding_functions should be changed to the following:
import logging
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
logger = logging.getLogger(name)
class CohereEmbeddingFunction(EmbeddingFunction[Documents]):
def init(self, api_key: str, model_name: str = "large"):
try:
import cohere
except ImportError:
raise ValueError(
"The cohere python package is not installed. Please install it with pip install cohere"
)
    self._client = cohere.Client(api_key)
    self._model_name = model_name

def __call__(self, input: Documents) -> Embeddings:
    # Call Cohere Embedding API for each document.
    return [
        embeddings
        for embeddings in self._client.embed(
            texts=input, model=self._model_name, input_type="search_document"
        )
    ][2][1]

repo: chroma-core/chroma