Transitive dependencies with classifier are not pulled

steps
sbt version:1.3.5

Clone https://github.com/pdalpra/coursier-test
Go to the netty-epoll-direct folder
Run sbt ';update;show fullClasspath;publishLocal' => Notice that the classpath does include netty-transport-native-epoll-4.1.44.Final-linux-x86_64.jar
Go to the netty-epoll-transitive folder
Run sbt ';update;show fullClasspath => Notice that that all dependency (including transitive ones) are there, except netty-transport-native-epoll-4.1.44.Final-linux-x86_64.jar, which has been replaced by netty-transport-native-epoll-4.1.44.Final.jar (no classifier)

problem
sbt with coursier ignores the classifiers from transitive dependencies. This works with Ivy.
I have tried to tweak transitiveClassifiers to include the classifier, without success.
expectation
sbt with coursier should honor the classifiers even on transitive dependencies.
notes

I am guessing this is a duplicate of https://github.com/sbt/sbt/issues/5136.

Maybe.
Then, issue #5136 was copied on coursier as coursier/coursier#1386 which was closed as fixed, with commit shipped in coursier 2.0.0-RC5: Take Ivy dependencies artifacts into account.
Yet, sbt 1.3.5 uses 2.0.0-RC5-2 and it still doesn't work.

That seems to originate from the classifier missing in some of the locally published metadata.
~/.ivy2/local/coursier.test/netty-epoll-direct_2.12/0.1.0-SNAPSHOT/ivys/ivy.xml misses the linux-x86_64 classifier in its dependency towards io.netty:netty-transport-native-epoll:
    <dependency org="io.netty" name="netty-transport-native-epoll" rev="4.1.44.Final" conf="compile->default(compile)"> </dependency>

~/.ivy2/local/coursier.test/netty-epoll-direct_2.12/0.1.0-SNAPSHOT/poms/netty-epoll-direct_2.12.pom has it OTOH:
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-epoll</artifactId>
            <version>4.1.44.Final</version>
            <classifier>linux-x86_64</classifier>
        </dependency>

(so I'd expect anything published to Maven repositories to be fine).

Seems that ivy.xml file is now generated by this (sbt) code.

@alexarchambault @eed3si9n Indeed, it looks like the problem is with the generated ivy.xml.
However, does it make sense that the issue is with sbt only as the problem goes away when disabling coursier?
Using sbt 1.3.5.
default:
<dependency org="io.netty" name="netty-transport-native-epoll" rev="4.1.44.Final" conf="compile->default(compile)"> </dependency>

with ThisBuild / Keys.useCoursier := false:
<dependency org="io.netty" name="netty-transport-native-epoll" rev="4.1.44.Final" conf="compile->default(compile)">
	<artifact name="netty-transport-native-epoll" type="jar" ext="jar" conf="*" e:classifier="linux-x86_64"/>
</dependency>

However, does it make sense that the issue is with sbt only as the problem goes away when disabling coursier?

Yes, I think the code above that generates ivy.xml either doesn't run, or the file it writes is then overridden by Ivy itself.

Same problem here. Is there a status on this or should we just disable Coursier ?

I would be willing to work on this and contribute a fix but I don't really know where to look. Any pointer would be very welcome! Also, instructions on how to build sbt-coursier would be very much appreciated (I guess the bug is in there but I couldn't manage to figure out how to build).

Hey! I would also be willing to help to fi this. I tried to take a look, but I got lost in the sources. Any hint would be nice.

@pdalpra It looks like you've dropped the reproducer project :(

Ah indeed, sorry for that, completely forgot that it was for that issue...
I could not find a local copy for it, altough it’s not too hard to rebuild a reproducer.

Yes, will do. Thanks anyway :)

Yes, I think the code above that generates ivy.xml either doesn't run, or the file it writes is then overridden by Ivy itself. That code was added specifically for coursier support (this used to be handled by the coursier sbt plugin).

I opened the pull request #6456 which modifies that piece of code to add the classifier (if there is one) to the ivy.xml file, and it does seem to work. The code simply only generated the dependency element, and the exclude elements if there are exclusions, but not the artifact element for the classifier.


Incorrect table headers

The first two tables in this document include incorrect headers for the table columns, especially the second column reflecting the content of the prior paragraph rather than describing the content of the table column. The incorrect heading makes the table content difficult to understand for anyone who is not already versed in creating a mail flow rule. The first column header should read "Setting or Option" and the second "Recommended Setting" as is done for the remaining tables on the page.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 26120923-cfc5-e6f7-866b-9e5cbcf22363
Version Independent ID: aaec5592-df91-ee04-9f73-081e69dd34cd
Content: Increase threat protection for Microsoft 365 for Business - Microsoft 365 admin
Content Source: microsoft-365/admin/security-and-compliance/increase-threat-protection.md
Service: o365-administration
GitHub Login: @SKjerland
Microsoft Alias: sharik

Hello @coproyer and thank you so much for your feedback. We have revised the content quite a bit and I think this issue is resolved. Please see the new article: https://docs.microsoft.com/en-US/microsoft-365/business-premium/m365bp-security-overview


Change removable media (floppy and cdrom) while running

When using this emulator to run Windows XP, I encounter the program "setup". However, it tells me to insert the next image into drive A. Where's Drive A? Jamming a 1.44MB floppy into my laptop would probably destroy my computer and not help at all. So is there a way?
A possible solution is to upload the images into / (maybe A:) but I haven't had any luck using the filesystem yet...
Thank you in advance.

Agreed, a little button to switch out images would be awesome.

You would need this feature to install operating systems from the 1980s where they had like 10 install disks for each version of DOS.

5 years later and im guessing this will never be added in?

I’m not clear on what the OS (BIOS?) is looking for to notice fdd changes.  According to https://wiki.osdev.org/Floppy_Disk_Controller it sounds like changing  port3F7_read to send a 1 in bit 7 when the disk door is opened (disk removed?) and again when closed (disk inserted?) should let us change the underlying buffer used by the floppy controller smoothly.  Does that sound about right?

As for CD-ROM, I think the IDEInterface would need to change in a few ways...  Here's my understanding of the problem based on the osdev wiki ( https://wiki.osdev.org/PCI_IDE_Controller#Ejecting_an_ATAPI_Drive ) and https://inst.eecs.berkeley.edu/~cs150/fa01/labs/project/ATAPI_Spec.pdf .
First off, when a disk is inserted, the ide controller should generate a unit attention condition that persists until it's cleared by the guest when it sends a "request sense" about it; my understanding is that this should cause all reads and stuff to error out with a "unit attention" error.  At that point the controller can do what it was doing before, but with a new buffer.  I think this is the first thing to implement: a button to load a CDROM into an empty cdrom controller.
For the emulator user to trigger an eject, we can do it by telling the interface to respond to queries with an error status with bit 3 (Media Change Requested) set.  Then the controller should wait for the guest to send an Acknowledge Media Change command (code DB), after which the guest promises to send the eject sequence.  (For a less graceful way, we could just swap the buffers and set that unit attention condition from before, but then the guest OS doesn't get a chance to e.g. prevent the eject or things like that).
For the guest OS to trigger an eject, I think there is an ATAPI command that can be implemented (see the osdev link), but it's also possible it's the start/stop unit command with the "LoEj" flag set.  Here I'd want to hook on ATAPI commands and see if the guest is sending something that we're not handling.

@JoeOsborn Nice research! Would you be willing to try implementing it and sending a PR? We have pretty decent test coverage, so chance of breaking anything should be low.

I’m not clear on what the OS (BIOS?) is looking for to notice fdd changes. According to https://wiki.osdev.org/Floppy_Disk_Controller it sounds like changing port3F7_read to send a 1 in bit 7 when the disk door is opened (disk removed?) and again when closed (disk inserted?) should let us change the underlying buffer used by the floppy controller smoothly. Does that sound about right?

Yes, that makes sense. I believe in order to swap a floppy disk safely, you first safely eject it from the guest OS, then the disk is physically changed, and the guest just tries to re-read at regular intervals. So there isn't necessarily an interrupt or mechanism like in the IDE case.

The confusing thing to me is how this works with respect to “selecting” fda or fdb—so if it’s cleared on a successful read or seek, we’d have to track the state for each of the two drives.
I also guess sometimes the guest OS could cause the floppy to pop out---that's something where noticing when unhandled commands are being sent would be good, because then we could see what to implement.

I think we can safely ignore both of those for now. I'm not even sure if fdb works at the moment.

(For a less graceful way, we could just swap the buffers and set that unit attention condition from before, but then the guest OS doesn't get a chance to e.g. prevent the eject or things like that).

A non-graceful version would already be quite useful, so that's a good starting point.


Use single Node.js version

Currently install.sh script requires node 11.15.0 to be executed successfully. Using a newer version cause fails during npm install in keep-core and keep-ecdsa repositories. On the contrary, e2e tests use some features (like json-modules) which are available in node > 13 hence we have to switch node versions which is cumbersome. The need of switch also causes some non-blocking errors related to node-gyp while executing e2e tests. We should find a way to run everything using a single node version and fix the problem with node-gyp.

Using a newer version cause fails during npm install in keep-core and keep-ecdsa repositories.

Can you give me a pointer on this? I've been doing npm install for keep-core and keep-ecdsa both with Node 12.16.3 for a while with no issues. The node-gyp builds fail, but do not result in an install failure (all of the relevant packages in our dependencies fall back on JS implementations of the native-built functions).

e2e tests use some features (like json-modules) which are available in node > 13

A small nit here: Node 12 (the LTS version) supports JSON modules as well as the --experimental-json-modules flag.
I can't speak to other Node versions, but I suggest it may be worth trying specifically anchoring to Node 12 for the full build. Since it's the LTS version, I think that's also a sound decision overall.


[Bug][Dashboard] DORA Details - Deployment Frequency dashboard malfunctioning

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Somehow these panels of the dashboard DORA Details - Deployment Frequency show zero value, but as visible in the second image the status of deployments works properly. The source is the GitLab.
p.s. The screenshots were done for one of our projects called Search.
Screenshot 1

Screenshot 2

What do you expect to happen
These panels shouldn't be empty and need to visualize the appropriate data

How to reproduce
Use GitLab as a source of Source Code Management then select any project in the following dashboard DORA Details - Deployment Frequency.
Anything else
No response
Version
v1.0-beta1
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thans for reporting. I'll look at it now.


Different results with the same input for each run if the input arrays are float

General information

Corrfunc version:
Version: 2.3.0
platform:
Ozstar
installation method (pip/source/other?):
pip

Issue description
I am using Corrfunc.theory.xi or Corrfunc.theory.DD to compute the pair counts with the same inputs. However, I find that the results will be different if the data type of input arrays is float.
Expected behavior
The results should be the same for every runs.
 Are the pair-counts different between DD and xi for the same precision? Or are the pair-counts different if the precision is different?
The second case is expected; the first one is not.

@yqiuu Could you please attach the differences that you see in the pair-counts?

The pair-counts are different with different runs using 'float'.
with the above arrays, if I run
import Corrfunc
r_bins = np.logspace(0, 1., 20)

for i in range(10):
    print(Corrfunc.theory.DD(1, 4, r_bins, x, y, y)['npairs'])

I got
[ 0  2  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  0  0  2  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  2  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  0  0  2  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  2  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  0  0  2  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  2  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  0  0  2  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  2  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
[ 0  0  0  2  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]
This happens by chance. Sometimes, it can give the same results.  It seems that the difference only appears at small scale bins.

I can't reproduce this.  Even with 10K iterations, I always get:
[ 0  0  0  0  0  0  0  0  2  0  2  4  4  6  6 10  6  8 14]

(no floating "2" in the small bins).
@yqiuu Ozstar is an AVX-512 machine, right?  I currently don't have access to my AVX-512 machines, so I'm testing on AVX.  Can you try isa="avx" or isa="fallback"?  And separately nthreads=1?

@yqiuu Is the repeating y for the 3rd co-ordinate intended or should that be z?

It should be z. However, if this is set to z, the test arrays are not suitable to show the problem, because the small scale bins are always zero. Sorry for the confusion.
I have tried the following:

import numpy as np

x = np.array([154.24363377,  71.10038029,  96.5765405 ,  48.12103686,
        82.58892783,  78.97697358,  93.87293244,  63.51212846,
<PHONE_NUMBER>5,  57.94164262,<PHONE_NUMBER>8,<PHONE_NUMBER>3,
        50.69274732,  68.56647771,  23.08430836,  86.27321003,
        44.70834559,  14.66498218,  87.3814769 ,  78.25190344,
<PHONE_NUMBER>8,<PHONE_NUMBER>3,  55.15903248,<PHONE_NUMBER>2,
<PHONE_NUMBER>2,  21.08061626,  76.57928182,  38.66539445,
        98.63250943,<PHONE_NUMBER> ,<PHONE_NUMBER>2,  63.26940503,
        69.84954268,  70.53042064,<PHONE_NUMBER>3,<PHONE_NUMBER>9,
<PHONE_NUMBER>6,  15.55010734,  18.56082778,  94.46919022,
        96.822737  ,<PHONE_NUMBER>1,  79.08883352,  39.43899245,
        21.01567216,  24.08500134,  47.45628488,<PHONE_NUMBER>3,
<PHONE_NUMBER>5,  71.29574062,<PHONE_NUMBER>4,  83.56938351,
        44.29643485,<PHONE_NUMBER>9,  20.56340634,  52.90839107,
        92.50084288,  20.91060155,<PHONE_NUMBER>1,<PHONE_NUMBER>8,
        62.67192188,<PHONE_NUMBER>6,<PHONE_NUMBER>5,<PHONE_NUMBER>5,
<PHONE_NUMBER>3,<PHONE_NUMBER>8,<PHONE_NUMBER>7,  74.99863632,
        24.72138599,<PHONE_NUMBER>1,  38.8045429 ,  55.22412623,
<PHONE_NUMBER>5,  87.43394324,<PHONE_NUMBER>2,  89.53111289,
<PHONE_NUMBER>9,<PHONE_NUMBER>6,<PHONE_NUMBER> ,   1.21481224,
        35.51477847,  46.47684359,<PHONE_NUMBER>7,<PHONE_NUMBER>7,
<PHONE_NUMBER> ,  75.39078277,  83.82819297,  78.95748582,
        68.03988315,<PHONE_NUMBER>7,<PHONE_NUMBER>9,  61.52860312,
<PHONE_NUMBER>8,  53.12718738,<PHONE_NUMBER>2,  29.46045605,
        94.8644012 ,<PHONE_NUMBER>8,<PHONE_NUMBER>5,<PHONE_NUMBER>4], dtype='f4')

y = np.array([ 74.20041724,<PHONE_NUMBER>6,   4.19799531,<PHONE_NUMBER> ,
        73.94797063,  93.25782718,  70.73451261,<PHONE_NUMBER>5,
        54.94785838,  23.08725315,  21.7301481 ,   5.32000165,
        35.49688556,  22.61295084,<PHONE_NUMBER>9,<PHONE_NUMBER>9,
<PHONE_NUMBER>3,<PHONE_NUMBER> ,  25.55602135,<PHONE_NUMBER>8,
        79.5565082 ,<PHONE_NUMBER>7,  25.03003374,<PHONE_NUMBER>4,
        26.221811  ,<PHONE_NUMBER>6,  35.02368834,<PHONE_NUMBER>7,
        39.58858194,  71.81908595,  74.23309012,<PHONE_NUMBER>6,
<PHONE_NUMBER>6,  82.78500574,<PHONE_NUMBER> ,  58.73353201,
        83.65154655,<PHONE_NUMBER> ,  40.00122087,  20.7800799 ,
        23.45036569,  79.96601625,  92.99591359,  64.07818137,
<PHONE_NUMBER>4,  55.05638139,  30.24035837,  86.75711198,
<PHONE_NUMBER>3,  41.49271995,  50.41986821,  84.86378206,
        65.69877637,<PHONE_NUMBER>5, 150.929154  ,<PHONE_NUMBER>3,
        42.84789328,<PHONE_NUMBER>9,  57.45049599,  54.32509986,
        87.8640008 ,  14.47864149,<PHONE_NUMBER>7,  63.38974637,
<PHONE_NUMBER>5,  70.12707422,  95.95983099,  92.51392252,
        49.56774198,<PHONE_NUMBER> ,  72.90552511,  98.62399015,
        72.67972087,  25.81617475,  87.16477047,<PHONE_NUMBER>6,
        53.73138469,<PHONE_NUMBER>2,  78.81040562,  17.78860576,
<PHONE_NUMBER>8,<PHONE_NUMBER>5,  92.97102858,   7.27206935,
        20.29002578,  94.17857418,  16.11068757,  28.75440891,
        91.66769992,<PHONE_NUMBER>6,<PHONE_NUMBER>5,  48.11642645,
        35.06381179,  72.19645013,  38.54956658,<PHONE_NUMBER>4,
        22.10689507,  61.5182437 ,  65.87864166,  30.68701823], dtype='f4')

z = np.array([146.21647577,  61.08008498,  97.13488482,<PHONE_NUMBER>1,
        55.6723131 ,  89.64574052,  47.93942781,  44.56659984,
<PHONE_NUMBER>3,<PHONE_NUMBER> ,  64.01751132,  82.70478123,
<PHONE_NUMBER>1,<PHONE_NUMBER>9,   2.55095738,  44.55404248,
<PHONE_NUMBER>7,   4.54609139,  63.88983754,  29.80492839,
        97.41935009,  53.45799508,<PHONE_NUMBER>3,<PHONE_NUMBER>6,
        17.4472339 ,   4.82534698,  53.29331451,  12.6831773 ,
        90.26226647,  92.76079878,  92.05478613,  63.06079921,
        55.56329305,  71.22088986,   0.81801217,  81.84834028,
        92.78697394,  68.13169696,<PHONE_NUMBER>8,  52.0838586 ,
<PHONE_NUMBER>2,  96.69167869,  90.09059216,  32.97819875,
<PHONE_NUMBER>1,  97.70859266,  16.88023473,  32.49728365,
        81.79113339,  76.16232256,  89.93757267,<PHONE_NUMBER>9,
        28.82538725,<PHONE_NUMBER>3,  11.54381614,  26.69260803,
        31.57219653,  58.21263806,  44.81594301,  91.15262872,
        79.6094962 ,  15.29534428,<PHONE_NUMBER>6,<PHONE_NUMBER>2,
        27.31134528,  83.21215073,  33.9846585 ,  89.36345496,
<PHONE_NUMBER> ,<PHONE_NUMBER>4,   8.89474904,  94.42065605,
        99.4874119 ,  63.88485714,  91.53668585,  39.02256202,
        32.51451294,<PHONE_NUMBER> ,<PHONE_NUMBER>5,<PHONE_NUMBER>6,
        20.5048495 ,<PHONE_NUMBER>5,  22.15312068,  19.46025113,
<PHONE_NUMBER>6,<PHONE_NUMBER>4,  46.43533964,<PHONE_NUMBER>9,
        28.09200362,<PHONE_NUMBER>8,  91.05322106,<PHONE_NUMBER>4,
        38.17852291,<PHONE_NUMBER>8,  48.63438798,<PHONE_NUMBER>9,
        47.86855971,  86.28621964,<PHONE_NUMBER>1,  51.34929809], dtype='f4')

import Corrfunc
r_bins = np.logspace(0, 1., 20)
print("iax='avx'")
for i in range(10):
    print(Corrfunc.theory.DD(1, 4, r_bins, x, y, z, isa='avx')['npairs'])

print("iax='fallback'")
for i in range(10):
    print(Corrfunc.theory.DD(1, 4, r_bins, x, y, z, isa='fallback')['npairs'])

print("nthreads=1")
for i in range(10):
    print(Corrfunc.theory.DD(1, 1, r_bins, x, y, z)['npairs'])

I can have
iax='avx'
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
iax='fallback'
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
nthreads=1
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0 10  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0  0  0 10  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 0  0  0 10  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
[ 2  2  0  0  2  0  2  2  2  2  0  6  2  0  0  6  2  8 16]
The results of each run are different.

Okay, so it does not appear to be a multithreading or instruction set issue.  Can you also try enable_min_sep_opt=False, and separately copy_particles=False?  I can't imagine why either of these would be platform-dependent though...
If neither of those work, could you try building the latest version of Corrfunc from Github?  It's usually pretty straightforward: https://github.com/manodeep/Corrfunc/#preferred-install-method.  Just make sure that it's not finding your old pip version, perhaps by creating a new conda environment.
@manodeep, have you been able to reproduce this?  I am still unable to.  Could you test it on Ozstar?

@yqiuu I can not reproduce this on ozstar.
import numpy as np

x = np.array([154.24363377,  71.10038029,  96.5765405 ,  48.12103686,
              82.58892783,  78.97697358,  93.87293244,  63.51212846,
<PHONE_NUMBER>5,  57.94164262,<PHONE_NUMBER>8,<PHONE_NUMBER>3,
              50.69274732,  68.56647771,  23.08430836,  86.27321003,
              44.70834559,  14.66498218,  87.3814769 ,  78.25190344,
<PHONE_NUMBER>8,<PHONE_NUMBER>3,  55.15903248,<PHONE_NUMBER>2,
<PHONE_NUMBER>2,  21.08061626,  76.57928182,  38.66539445,
              98.63250943,<PHONE_NUMBER> ,<PHONE_NUMBER>2,  63.26940503,
              69.84954268,  70.53042064,<PHONE_NUMBER>3,<PHONE_NUMBER>9,
<PHONE_NUMBER>6,  15.55010734,  18.56082778,  94.46919022,
              96.822737  ,<PHONE_NUMBER>1,  79.08883352,  39.43899245,
              21.01567216,  24.08500134,  47.45628488,<PHONE_NUMBER>3,
<PHONE_NUMBER>5,  71.29574062,<PHONE_NUMBER>4,  83.56938351,
              44.29643485,<PHONE_NUMBER>9,  20.56340634,  52.90839107,
              92.50084288,  20.91060155,<PHONE_NUMBER>1,<PHONE_NUMBER>8,
              62.67192188,<PHONE_NUMBER>6,<PHONE_NUMBER>5,<PHONE_NUMBER>5,
<PHONE_NUMBER>3,<PHONE_NUMBER>8,<PHONE_NUMBER>7,  74.99863632,
              24.72138599,<PHONE_NUMBER>1,  38.8045429 ,  55.22412623,
<PHONE_NUMBER>5,  87.43394324,<PHONE_NUMBER>2,  89.53111289,
<PHONE_NUMBER>9,<PHONE_NUMBER>6,<PHONE_NUMBER> ,   1.21481224,
              35.51477847,  46.47684359,<PHONE_NUMBER>7,<PHONE_NUMBER>7,
<PHONE_NUMBER> ,  75.39078277,  83.82819297,  78.95748582,
              68.03988315,<PHONE_NUMBER>7,<PHONE_NUMBER>9,  61.52860312,
<PHONE_NUMBER>8,  53.12718738,<PHONE_NUMBER>2,  29.46045605,
              94.8644012 ,<PHONE_NUMBER>8,<PHONE_NUMBER>5,<PHONE_NUMBER>4], dtype='f4')

y = np.array([ 74.20041724,<PHONE_NUMBER>6,   4.19799531,<PHONE_NUMBER> ,
               73.94797063,  93.25782718,  70.73451261,<PHONE_NUMBER>5,
               54.94785838,  23.08725315,  21.7301481 ,   5.32000165,
               35.49688556,  22.61295084,<PHONE_NUMBER>9,<PHONE_NUMBER>9,
<PHONE_NUMBER>3,<PHONE_NUMBER> ,  25.55602135,<PHONE_NUMBER>8,
               79.5565082 ,<PHONE_NUMBER>7,  25.03003374,<PHONE_NUMBER>4,
               26.221811  ,<PHONE_NUMBER>6,  35.02368834,<PHONE_NUMBER>7,
               39.58858194,  71.81908595,  74.23309012,<PHONE_NUMBER>6,
<PHONE_NUMBER>6,  82.78500574,<PHONE_NUMBER> ,  58.73353201,
               83.65154655,<PHONE_NUMBER> ,  40.00122087,  20.7800799 ,
               23.45036569,  79.96601625,  92.99591359,  64.07818137,
<PHONE_NUMBER>4,  55.05638139,  30.24035837,  86.75711198,
<PHONE_NUMBER>3,  41.49271995,  50.41986821,  84.86378206,
               65.69877637,<PHONE_NUMBER>5, 150.929154  ,<PHONE_NUMBER>3,
               42.84789328,<PHONE_NUMBER>9,  57.45049599,  54.32509986,
               87.8640008 ,  14.47864149,<PHONE_NUMBER>7,  63.38974637,
<PHONE_NUMBER>5,  70.12707422,  95.95983099,  92.51392252,
               49.56774198,<PHONE_NUMBER> ,  72.90552511,  98.62399015,
               72.67972087,  25.81617475,  87.16477047,<PHONE_NUMBER>6,
               53.73138469,<PHONE_NUMBER>2,  78.81040562,  17.78860576,
<PHONE_NUMBER>8,<PHONE_NUMBER>5,  92.97102858,   7.27206935,
               20.29002578,  94.17857418,  16.11068757,  28.75440891,
               91.66769992,<PHONE_NUMBER>6,<PHONE_NUMBER>5,  48.11642645,
               35.06381179,  72.19645013,  38.54956658,<PHONE_NUMBER>4,
               22.10689507,  61.5182437 ,  65.87864166,  30.68701823], dtype='f4')

import Corrfunc
r_bins = np.logspace(0, 1., 20)
nthreads = 4
autocorr = 1
isas = ['avx512f', 'avx', 'fallback']
for isa in isas:
    print("isa={}".format(isa))
    for i in range(10):
        print(Corrfunc.theory.DD(autocorr, nthreads, r_bins, x, y, y,
                                 isa=isa)['npairs'])

nthreads = 1
print("nthreads= {}".format(nthreads))
for i in range(10):
    print(Corrfunc.theory.DD(autocorr, nthreads, r_bins, x, y, y)['npairs'])

The output is:
[~/temp/test_yisheng_bug @farnarkle1] python test_script.py
isa=avx512f
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
isa=avx
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
isa=fallback
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
nthreads= 1
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]
[ 0  0  0  2  2  2  0  4  2  0  4 16  2  4  6 10 24 18 22]

@yqiuu I will also note that the results I get are different from what you get.
Modules loaded on ozstar:
[~/temp/test_yisheng_bug @farnarkle1] ml

Currently Loaded Modules:
  1) slurm/.latest  (H,S)   3) gcccore/7.3.0   5) gcc/7.3.0       7) openblas/0.2.20   9) scalapack/2.0.2-openblas-0.2.20  11) python/3.6.4               13) gsl/2.5
  2) nvidia/.latest (H,S)   4) binutils/2.30   6) openmpi/3.0.0   8) fftw/3.3.7       10) sqlite/3.21.0                    12) numpy/1.14.2-python-3.6.4

[~/temp/test_yisheng_bug @farnarkle1] python
Python 3.6.4 (default, Mar 26 2018, 15:30:40)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Corrfunc
>>> print(Corrfunc.__version__)
2.3.0

@manodeep. In the second example, I use z instead of y. Otherwise, we got the same results.
However, I still have the "different results" problem. I need to think about this.

@yqiuu Thanks for letting me know.
It must be that something is wrongly set in your environment. My recommendation would be the following steps:

ml purge
unset PYTHONPATH
ml numpy/1.14.2-python-3.6.4 gsl/2.5
python -m pip install Corrfunc --user (note that this will install Corrfunc v2.3.1)
python test_script.py

@yqiuu I can now reproduce this behaviour on ozstar

@yqiuu Upon further digging, it looks like a combination of AVX512F and gcc7.3.0 is causing the non-determinism. This issue might take a while to solve but for now, I would recommend using icc2018 to compile Corrfunc.

For reference, I could not reproduce the issue on these platforms + toolchains:

gstar with gcc7.3
sstar with gcc7.3
ozstar with icc2018
ozstar with gcc7.3 but with AVX512F disabled

If you do need to stick to gcc7.3 then you can disable AVX512F by adding -mno-avx512f in the common.mk file in the root directory and running make distclean and then installing..

@lgarrison Do you have any ideas on how we could work around this compiler issue or at least warn the users with AVX512F kernels compiled with gcc7.3?

Is it fair to say that we don't know it's a compiler bug yet?  It could just be a race condition (or use of uninitialized data, etc) with a lower reproduction rate with other compilers.  Maybe the best workaround would be to detect the compiler version in the Makefile and issue a warning or disable AVX512F appropriately.
Speaking of uninitialized data, we've never gotten valgrind to work with AVX512, have we?  Maybe we could try Intel Inspector?

You make a good point - I was simply going with the fact that the code works with icc. There is still no valgrind for avx512 (open issue here)
What is Intel Inspector?

It's what came up when I googled "intel valgrind alternative"!  I've never used it myself.  This old article suggests it has Valgrind-like functionality though: https://software.intel.com/en-us/articles/transitioning-from-valgrind-tools-to-intel-inspector-xe
And since it's an Intel tool I would hope that it would have full AVX-512 support.

Could not get Inspector to work on ozstar but it does look promising.
Btw, I now remember why I think this is a compiler bug -- the issue is in all the AVX512F/AVX/SSE kernels when AVX512F is enabled but disappears from the AVX/SSE kernels when AVX512F is disabled. And we have tested the AVX/SSE kernels on the use of uninitialised data, and I confirmed with running valgrind on this specific example on the sstar node. Running with all of the -fsanitize options on AVX512F machine did not produce any errors, but the error itself might be beyond the purview of fsanitize anyway.
I also played around a bit with the data yesterday - turns out whether the issue occurs (or, more accurately, how frequently the issue occurs) is sensitive to the total number of bins. Also, what the garbage values depend on Rmin, i.e., the incorrect values produced depend on the correct result. I will also note that I have intermittent difficulty producing the wrong result from the shell - I have shell script that will frequently run ~ 10^5 times without detecting any mis-match between consecutive runs.
All that is to say, regardless of how/where this is coming from, it is a weird bug.

That does sound more like a compiler bug!  Have you tried disabling AVX512
for all compilation units but the kernel itself?  That might narrow down
the possible sources considerably.
On Wed, Sep 18, 2019 at 7:33 PM Manodeep Sinha<EMAIL_ADDRESS>wrote:

Could not get Inspector to work on ozstar but it does look promising.
Btw, I now remember why I think this is a compiler bug -- the issue is in
all the AVX512F/AVX/SSE kernels when AVX512F is enabled but disappears from
the AVX/SSE kernels when AVX512F is disabled. And we have tested the
AVX/SSE kernels on the use of uninitialised data, and I confirmed with
running valgrind on this specific example on the sstar node. Running with
all of the -fsanitize options on AVX512F machine did not produce any
errors, but the error itself might be beyond the purview of fsanitize
anyway.
I also played around a bit with the data yesterday - turns out whether the
issue occurs (or, more accurately, how frequently the issue occurs) is
sensitive to the total number of bins. Also, what the garbage values depend
on Rmin, i.e., the incorrect values produced depend on the correct
result. I will also note that I have intermittent difficulty producing the
wrong result from the shell - I have shell script that will frequently
run ~ 10^5 times without detecting any mis-match between consecutive runs.
All that is to say, regardless of how/where this is coming from, it is a
weird bug.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/193?email_source=notifications&email_token=ABLA7S5P5I2HA7BQQFW3M5TQKK3GLA5CNFSM4ISICW32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7BX7QA#issuecomment-532905920,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7S6LHIZOPQFG4DV2PLTQKK3GLANCNFSM4ISICW3Q
.

--
Lehman Garrison<EMAIL_ADDRESS>Flatiron Research Fellow, Cosmology X Data Science Group
Center for Computational Astrophysics, Flatiron Institute
https://lgarrison.github.io

I might do the opposite for starters, only disable AVX512F everywhere except within the kernels file and see what happens. And then try what you suggested.
The bottleneck is that I am unsure how to push and pop compile options. Will give it a shot

I was able to reproduce the bug and track it to the optimization flag -fvect-cost-model added by -O3.  From https://gcc.gnu.org/onlinedocs/gcc-7.4.0/gcc/Optimize-Options.html#Optimize-Options:

-fvect-cost-model=model
Alter the cost model used for vectorization. The model argument should be one of ‘unlimited’, ‘dynamic’ or ‘cheap’. With the ‘unlimited’ model the vectorized code-path is assumed to be profitable while with the ‘dynamic’ model a runtime check guards the vectorized code-path to enable it only for iteration counts that will likely execute faster than when executing the original scalar loop. The ‘cheap’ model disables vectorization of loops where doing so would be cost prohibitive for example due to required runtime checks for data dependence or alignment but otherwise is equal to the ‘dynamic’ model. The default cost model depends on other optimization flags and is either ‘dynamic’ or ‘cheap’.

Using -O3 -fvect-cost-model=cheap seems to fix the problem.
I've found two mentions of a similar bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=78807 and https://github.com/godotengine/godot/issues/4623, both of which point the finger at GCC not respecting alignment.  This seems plausible, given that the issue only appears when we introduce single precision arrays.
I suspect we could dig deeper and find the bugged loop and make a minimal reproducer, but in the meantime we should push a fix soon.
@manodeep, can you confirm the fix on your end?  @yqiuu, it would be great if you could test it too.  Just add -fvect-cost-model=cheap to this line: https://github.com/manodeep/Corrfunc/blob/master/common.mk#L205.

Thanks @lgarrison. I am curious - how did you track this down?
Given that even the floating point works frequently, alignment seems likely to be the culprit. But even when the results are wrong, the results are always the same wrong value. Does this mean that  what matters is the alignment for the npairs arrays?

First, I found that copy_particles=False lead to a higher reproduction rate (nearly 100%).  Then, since we thought it could be a compiler bug, I backed off to -O0 and saw it didn't break, so I increased the optimization level until it did.  The reproduction rate went from 0 to 100% between -O2 and -O3, so from there I just had to try all the -O3 flags until one broke it.
Maybe the npairs alignment is the problem?  But it should always be 8-byte aligned, while the floating point arrays will be 4-byte aligned half the time (I hope!).  And since the code doesn't break with 8-byte floating point arrays, I'd guess the 4-byte alignment was the culprit.
But whatever loop/code/array is at fault must be basically identical between all kernels (or outside the kernels?), because the behavior is the same for all isa.
So, do we add code to common.mk to parse the GCC version and add this flag as necessary?  Or do we try to figure out what code pattern triggers it and avoid writing it?

If the copy_particles=False leads to a higher failure rate, then the alignment of the input arrays might matter. In your script, will you please print out the memory address for the X1/Y1/Z1/npairs arrays, and then we can see whether the bug has anything to do with the alignment. (My internet connection in India is too unstable currently for productive work)
In the short term, perhaps adding in the -fvect-cost-model-cheap into common.mk while we figure out a workaround in the code (assuming we can pinpoint the problem-causing section).

@lgarrison I can confirm that adding the -fvect-cost-model=cheap seems to fix the problem on the ozstar platform (where the issue was originally detected).

The cause appears to be that the rupp_sqr array is not computed correctly.  I.e. this loop goes in with correct rupp values but sometimes comes out with the first few rupp_sqr elements wrong (zero, nan, or garbage):
for(int i=0; i < nrpbin;i++) {
    rupp_sqr[i] = rupp[i]*rupp[i];
}

Source is: https://github.com/manodeep/Corrfunc/blob/master/theory/DD/countpairs_impl.c.src#L394-L396
Note that rupp is double and rupp_sqr is DOUBLE (i.e. float).  There are a couple of rupp/rupp_sqr 64-byte misalignment values that seem to break it, like 48/48; and some that seem to work, like 16/48.  But the exact pattern is unclear.
Seems easy enough to reproduce in Corrfunc, but it doesn't work in a minimal reproducer (with all these alignments and types forced by hand).  I'll keep trying.
The loop does work if rupp is DOUBLE.  But it's nice to preserve the full double value until after the multiplication.
And I've checked that we're allocating rupp memory correctly in setup_bins (at least by reading the code).

Okay, I have a reproducer!  Believe it or not, even a simple loop that copies the elements (no squaring) fails.  I've linked the example, can you run it and let me know if it also fails for you?  If so, I will submit a GCC bug report.
https://gist.github.com/lgarrison/5ebb747d3f1126319fd3744f925298e3

@lgarrison That's fantastic! And very disconcerting that such a simple piece of code can generate bugs!
That said, I copy-pasted the code in the gist on ozstar; but could not reproduce the bug :(

I was trying to diagnose the errant code produced but got lost in the sea of assembly. Link to godbolt here

@lgarrison Will you please change the declaration to
DOUBLE rupp_sqr[nrpbin] __attribute__((aligned(64)));;

and see if the bug still occurs? May be we could also try with posix_memalign for rupp.

Ahh, too bad it won't reproduce on ozstar!  That's Skylake, right?  Unfortunately, I cannot get Corrfunc to break on Skylake, only Cascade Lake.
I also note that the alignment values are different on Skylake; it's probably related.  In earlier iterations of the bug, I did try using posix_memalign to force alignments that I had seen fail.  But it didn't work; I suspect that (mis-)alignment is a necessary but not sufficient condition.
Forcing the stack alignment of rupp_sqr does seem to be one way to make the bug go away on Cascade Lake.  But many other things (like removing unexecuted lines of code) also make the bug go away!  Still, it may be our best option for working around the bug.
@manodeep, since you can get Corrfunc to break on ozstar, do you think it is worth it to try to make a reproducer there?  That would strengthen the GCC bug report.  On the other hand, the bug is pretty finicky, so it may not be worth the time to whittle down the code.

@lgarrison Yup ozstar is Skylake cpus - this bug is too finicky! At least you have the reproducer on Cascade Lake - may be that will be sufficient. Are you okay with submitting the bug report?

Yes, except that I tried it on a different Cascade Lake machine and it
won't trigger.  But maybe I'll file anyway and see if someone else can
reproduce...
On Tue, Oct 1, 2019, 3:00 AM Manodeep Sinha<EMAIL_ADDRESS>wrote:

@lgarrison https://github.com/lgarrison Yup ozstar is Skylake cpus -
this bug is too finicky! At least you have the reproducer on Cascade Lake -
may be that will be sufficient. Are you okay with submitting the bug report?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/193?email_source=notifications&email_token=ABLA7S75KWU7TM6HJ6LLWV3QMLYQBA5CNFSM4ISICW32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAAGV4A#issuecomment-536898288,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7SZW4QAHUOHIQXPJVDDQMLYQBANCNFSM4ISICW3Q
.

While preparing the GCC bug report, I found a report of a similar sounding issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91837
The root cause of which is this bug in the assembler in binutils 2.30: https://sourceware.org/bugzilla/show_bug.cgi?id=23465
My Cascade Lake platform is running binutils 2.30 and I can reproduce the simple assembly example that demonstrates the bug.  So I'm optimistic that upgrading binutils may fix the Corrfunc bug!  But now I have to figure out how to upgrade binutils...
In the meantime, could you check the bintuils version on Ozstar (as --version)?

Okay, I built bintuils 2.32 from source and told GCC to use it with gcc -B.  It fixes the bug both in the reproducer and in Corrfunc proper!
So... mitigations?  Unfortunately, my reading of the as bug is that it's rather general, meaning we could probably work around it in this one loop, but there's no guarantee it wouldn't pop up in another place in the code.  But I also think it only happens for AVX-512 (the assembly example in the second link above only produces the wrong answer for %zmm0, not %ymm0).  So maybe we check the binutils version at compile time and only emit AVX[2] code if it's a bad version?

The output on ozstar:
[~/temp/test_yisheng_bug @farnarkle2] as --version
GNU assembler (GNU Binutils) 2.30
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-pc-linux-gnu'.
[~/temp/test_yisheng_bug @farnarkle2]

So the assembler is v2.30. I will put in a request to update the binutils on ozstar, if possible. In the meantime, perhaps we can issue a patch to disable AVX512F while compiling with gcc and with as < 2.32. @lgarrison What do you think?

I will double check, but I think <=2.29 and >=2.31 might be safe.  The bug might only be present in that one version.  I'll run some tests.

Based on the binutils changelog and my tests, 2.30 and 2.31 have the bug, and <=2.29.1 and >=2.32 are safe.  I can work on a patch to disable AVX512 for the bugged versions.
It makes sense to warn the user about this when building from source, but what about when installing via pip?  Usually the pip installation is silent.

This is only for gcc as right? Is the clang as also affected?

This bug is strictly for GAS (the GNU Assembler).

Cool! The fix would be to simply check (within common.mk) if the assemler is one of the two buggy GAS versions. If so, we need to add -mno-avx512f to CFLAGS. This fix will work for both source installs and pip installs

Yep, I agree that would fix both installs.  But how loudly do we want to warn the users that the AVX-512 kernels will not be available?  It could be quite confusing to someone who knows they have an AVX-512 capable machine!
Also apparently icc uses GAS under the hood!  Not sure what the best way to universally detect the underlying as is.  It actually might be to compile a simple test and check if it produces bad assembly...

Following the instructions here:
$(CC) -xc -c /dev/null -Wa,-v -o/dev/null 2>&1 | grep -c -E "GNU assembler version (2\.30|2\.31)")

This line only works for real gcc compilers but will also work when the user specifies the full-path to a (gcc) compiler. In that case, the assembler (as) resolved by PATH might not be the same as that would be invoked by the compiler. This check is only necessary if the -march=native enables AVX512F.
common.mk just keeps getting more complex! We might need a better strategy to keep things organised.

@yqiuu This should now be fixed. I am going to update the PyPI version sometime in the next week, if you are happy to wait for that to get the updated Corrfunc version. Otherwise, you can install from source through the git clone route. Note that with this update you will not be able to use the faster AVX512F instructions on ozstar.
I have also requested a separate toolchain with gcc8 and binutils >= 2.32 on ozstar. If that becomes available, then you will be able to use the AVX512 capabilities on ozstar.

Or use clang, if that's on ozstar!
On Mon, Oct 7, 2019 at 8:27 AM Manodeep Sinha<EMAIL_ADDRESS>wrote:

@yqiuu https://github.com/yqiuu This should now be fixed. I am going to
update the PyPI version sometime in the next week, if you are happy to wait
for that to get the updated Corrfunc version. Otherwise, you can install
from source through the git clone route. Note that with this update you
will not be able to use the faster AVX512F instructions on ozstar.
I have also requested a separate toolchain with gcc8 and binutils >= 2.32
on ozstar. If that becomes available, then you will be able to use the
AVX512 capabilities on ozstar.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/193?email_source=notifications&email_token=ABLA7S5F4D7JISJJGHBAG23QNMTJ7A5CNFSM4ISICW32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAQEKBY#issuecomment-538985735,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7S35UPNV6AC4HEM63GDQNMTJ7ANCNFSM4ISICW3Q
.

--
Lehman Garrison<EMAIL_ADDRESS>Flatiron Research Fellow, Cosmology X Data Science Group
Center for Computational Astrophysics, Flatiron Institute
lgarrison.github.io


Upgrade ReactJS to version 0.14.8

I am getting npm ERR! code EPEERINVALID. This fixes this issue.

+1


ISPN-6677 Removed unnecessary dependencies

https://issues.jboss.org/browse/ISPN-6677
Please do not close the JIRA after merging this PR. There are still other modules to be analyzed.
Modules analyzed:

CDI (embedded and remote)
Spring (embedded and remote)
Core
Tasks (API and implementation)
Server/Router
Commons

@slaskawi Integrated, thanks!


Move js require higher in the install generator

Summary
In order to make Bulkrax's javascript work in Hydra, we needed to add bootstrap's JS to bulkrax, along with jquery since bootstrap depends on jquery.
In hyku apps, this caused unintended behavior with the dataTables in the dashboard.
The data tables needed to be required AFTER bulkrax in order to keep their functionality in hyku.
This commit will alter the install generator to insert the require for bulkrax/application above dataTables require.
co-author: @summer-cook
Ref:

https://github.com/samvera-labs/bulkrax/pull/836

Screenshots
generated require

Note
This may need to be changed for existing hyku applications with Bulkrax.
adding bootstrap javascript was a potential breaking change for some applications: existing hyku applications will need to change the order of these requires.

Instead of tinkering the generator, we are opting to adjust Hyda's application.js to include bootstrap instead of having it in Bulkrax


Refactor UI buttons to use Global Groups instead of Scene Groups

This is a new feature in Godot 4.3.x (godotengine/godot#60965). It is a better fit for the current solution.

Done


Added redirect from removed Hello World Example Apps page

Fixes https://cockroachlabs.atlassian.net/browse/DOC-2310.
(Marketing page is linking to the now-removed Hello World Example Apps overview on stable)
Follow-up on https://github.com/cockroachdb/docs/pull/12981#issuecomment-1033778576.

This change is


new config trace_alloc to keep allocation site

(rdbg) config set trace_alloc true
trace_alloc = true             # CONTROL: Keep allocation site and p, pp shows it (default: false)
(rdbg) n
[1, 4] in target.rb
      1| a = Object.new
=>    2| p a
      3|
      4| __END__
=>#0    <main> at target.rb:2
(rdbg) p a
=> #<Object:0x00005564a2b4ebd0>
allocated at target.rb:1

Discussion is, should it be a trace sub command or configuration?

I prefer a trace sub command because that's the first place I'll look for tracing related features.

Yes, but it doesn't print lines at allocation.
For example, line/call/passing events are printed (or recorded in a memory or a file) at each event.
By analogy of these examples, trace allocation will print each allocations (it can be useful on specific class, anyway).
But this feature only affects on p or pp command.

This is why I chose configuration.

keep_alloc_site is another name option.

The original trace on|off doesn't print things itself either (I mean when typing the command).
I think it's fine to let trace allocate (the sub command name I'd imagine) only enable functionalities instead of printing things, as long as other sub commands behave the same way too.
(btw maybe track (implies following) is better than trace (implies backward) in this case?)

Another argument could be: configurations should be more static than command toggling. And in this case, tracing allocation is more likely to be enabled/disabled differently across debugging sessions instead of consistently. For example,

Debug attempt 1 - not enabling allocation tracing.
Debug attempt 2 - enable allocation tracing.
Debug attempt 3 - not enabling allocation tracing.

So I think it's not a "configuration" like skip_path that should be the same across multiple sessions. It's like "do I need this enabled now?", which is more suitable with commands.

The original trace on|off doesn't print things itself either (I mean when typing the command).
I think it's fine to let trace allocate (the sub command name I'd imagine) only enable functionalities instead of printing things, as long as other sub commands behave the same way too.

I couldn't understand this opinion. Original trace on will prints line events.

I meant technically trace on doesn't print the information. It activates a TracePoint that prints things when the program proceeds. So to me the trace command is more like a switch to enable certain mechanisms.
In this case, allocation tracing is a mechanism to be activated too. At the moment, I don't see any config option that also performs this kind of activation. That's why I think it fits the same trace pattern better than a config option.

I decided to remain it as configuration.

trace terminology is known as "trace the behavior and print/save the history", because tracer library of Ruby, or strace command. Proposed feature of this PR doesn't care about history. I think trace command doesn't mean TracePoint.
We can enable this feature by an environment variable, if it is an option in config.
I'm checking gdb's set command (similar to config) and it has set record which enable the feature.
Alternative command would be enable command (enable save-allocation-site for example) but now it doesn't have other sub-command candidates.

I can introduce another command if there are this kind of features.


x/build: LUCI disallow non maintainers to run CI on CLs they do not own or commit when trybots used to

I was lurking and looked at https://go-review.googlesource.com/c/go/+/532895 and it look good to me so I've tried to start CI so it would already be green (or have chanced to be fixed) before someone with merge powers would take a look however LUCI denied it (when trybots used to allow it).
Even tho this case is different, this is a really useful feature I was using to start trybots on colleagues CLs which are not used to submit patches to go and don't have access to trybots. Now I guess can't do that anymore, have to spend a few days asking for permissions or waiting for someone with merge powers to look at it.

#62332

indeed thx


Missing Docs: How to get Invoice for subscription

Customers want to receive an invoice of the subscription for accounting. It is currently not obvious or documented how this works with Stripe.
This should be documented under Manuals for Administrators

@michaelulrichwaeger

@mffap Please send me the link to the documentation, i couldn't find it yesterday.

What documentation?

Manual for Administrators

Manual for Administrators

https://docs.zitadel.ch/
@eliobischof or @fgerschwiler should admin docs go under help or guides?

i think we could integrate it in the help where we have the organzition registration

How to setup email and get your invoices should have been done for a while. This ticket is open since September. Yes it might change, but it's also still a couple weeks/months away. It should take 30 min to do this.


Nodejs container

Given that in most modern apps nodejs is present through tools like webpack or various is linters, I would like to have that as an option for this stack setup.

The purpose of this repo is to provide a PHP container and an NGINX container that seamlessly connects to the FPM variant. If you're looking for NodeJS, I suggest taking a stroll through Docker Hub.

I see. I liked the way this repo was configured and I was thinking that maybe I'd be interested in creating a toolkit that includes most of the tools required for an average app.
thanks anyway.
and btw, good job, keep up!

Thanks, we're trying to do our best 😃
It really is geared towards the PHP needs we have internally but we think they're pretty generic so we're trying to contribute back to the community. We don't use a lot of Node (backend) internally but maybe if we do in the future, we'll make something similar.


GetManagedPageRangesDiff

Azure::Storage::Blobs::GetPageBlobPageRangesOptions.PreviousSnapshotUrl

Is this mixing GetManagedPageRangesDiff with the other page range APIs?

This is multiple APIs in .NET (GetPageRanges, GetPageRangesDiff, GetManagedPageRangesDiff) to make it easier to use
originally posted by @tg-msft


Converts Alert, Avatar & Card to typescript

Resolves #1020
Resolves #1025
Resolves #1027

Closing this to do it component by component instead.


Include information about region when assuming a workload account role

Otherwise it's hard to tell which region has the problem, and lines look like duplicates:
{"message":"Requested connection via arn:aws:iam::ACCOUNT:role/TargetRole"
{"message":"Assuming role arn:aws:iam::ACCOUNT:role/TargetRole..."
{"message":"Unable to assume role arn:aws:iam::ACCOUNT:role/TargetRole on<PHONE_NUMBER>70: AccessDenied: User: arn:aws:sts::ACCOUNT:assumed-role/TargetRole

In fact, nearly any time we mention an account, it should probably include a region
eg: Account ACCOUNT will be skipped

Included in https://github.com/Innablr/revolver/pull/313


Execution Policies (Visual Studio Code)

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Hello,
Im within Visual Studio Code using Powershell.  Im following "Using an Arduino with Python LESSON 2: Installing and Configuring Python and Visual Studio"-Paul McWhorter on https://youtu.be/dpQmAafRsbg
Reproducing:
-added 3.9.9 Python-Instructor says after trial and error current Python doesnt work
-confirmed 3.9.9
-created folder using (py -3.9 -m venv ardPy)
-attempted to activate using (ardPy/Scripts/activate)
-ACTIVATED "ardPy" prior to pip serial and vpython install by running (Activate.ps1).  This creates the "ardPy" environment.  When i attempt to check to see if the serial and vpython are imported as in video, VSC creates a Python environment and delivers error shared.  Error shared also appears if i move the "new file" created to check the import of serial and vpython into "ardPY"
Troubleshooting:
-checked python in Windows 11 (win+R, powershell in text, ctrl+shft+entr, Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine, enter) https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2
-checked on Visual Studio Code-typed python (3.9.9)
-refreshed/reset/reinstalled
-checked for updates
Im at the end of my list, perhaps someone knows whats missing or a known problem-Thanks
Expected behavior
Open a visual environment to work in and remain in that created environment.

Actual behavior
& : File C:\Users\ccman\OneDrive\Desktop\PythonFolder\PythonArduino\ardPy\
Scripts\Activate.ps1 cannot be loaded because running scripts is disabled
on this system. For more information, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ & c:/Users/ccman/OneDrive/Desktop/PythonFolder/PythonArduino/ardPy/Sc
...
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess```

Error details
in actual behavior

Environment data
: 1.64.2 (user setup)
Commit: f80445acd5a3dadef24aa209168452a3d97cc326
Date: 2022-02-09T22:02:28.252Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.22000

```Python 3.9.9```

```Windows 11```

Visuals
na

From the link @iSazonov  gave

If the execution policy in all scopes is Undefined, the effective execution policy is Restricted for Windows clients and RemoteSigned for Windows Server.

From the original post  this

Set-ExecutionPolicy -ExecutionPolicy Undefined

Implies that all the scopes are indeed Undefined.  which would give the error
<blah> cannot be loaded because running scripts is disabled on this system.

Set the execution policy to RemoteSigned and if the file you are trying to run was downloaded remove the "downloaded" attribute via file properties in Windows Explorer.

From the link @iSazonov gave

If the execution policy in all scopes is Undefined, the effective execution policy is Restricted for Windows clients and RemoteSigned for Windows Server.

From the original post this

Set-ExecutionPolicy -ExecutionPolicy Undefined

Implies that all the scopes are indeed Undefined. which would give the error
<blah> cannot be loaded because running scripts is disabled on this system.

Set the execution policy to RemoteSigned and if the file you are trying to run was downloaded remove the "downloaded" attribute via file properties in Windows Explorer.

Thank you, it worked.  I assumed wrong.  I figured 'Undefined' was the execution desired.
Hello World
(pyArd) PS C:\Users\ccman\OneDrive\Desktop\PythonFolder\PythonArduino>```

Thanks everyone


Radio checkbox is not firing uncheck event

I am using radiobutton and each choice will add some different new fields to the form. Therefore I need to know what exactly has changed (what was the previous radio button and what is the new/current). I can get new radio button by listening for onChange or onCheck callback from checkbox(). However onChange/onUnchecked won't show that some radio has been automatically unchecked.
I found a quick workaround with using beforeChecked and finding current checked radiobutton, but I would like to know if this is intentional behaviour as I was suprised and found this counter-intuitive. It could be just me tho.
Fiddle if needed http://jsfiddle.net/v6qmf3fo/5/
I am quite new to JS and Jquery, is there some more efficient workaround?
PS: I love Semantic UI, keep up the great work !

See: http://semantic-ui.com/modules/checkbox.html#/examples Everything works fine, I don't understand your issue

I should've comment out my workaround...
Let's work with this
http://jsfiddle.net/v6qmf3fo/6/http://jsfiddle.net/v6qmf3fo/6/
You see that in the info div only alternative unchecked fired (workaround), not the one stating unchecked only.
When I select some other radio button I would presume that onUnchecked would fire even tho I did not uncheck the radio itself, but it was unchecked automatically.
I just found this counterintuitive, but like I said, it could be just me, because I am used to this kind of behaviour from other frameworks. Doesn't really matter, because the workaround was quite simple.

@MarKayS Yeah I can see what you mean, if you remove 'checked' property it will append 'undefined ' guess the loop starts at 1 somewhere :smile:

Yeah I am missing one if statement there. Point is, to my opinion, the "onUnchecked" should trigger, don't you think?

That's a good question, @jlukic what do you think?

Same issue, radio buttons dont uncheck if i check another.


Prepare Release v4.1.0

Summary of changes
Changes introduced in this pull request:

Change version of init, market, miner actors and fil actor interface crate from v4.0.0 to v4.1.0

Reference issue to close (if applicable)

Closes #132
Other information and links

https://github.com/ChainSafe/fil-actor-states/pull/135 is not backward compatible. Merging it means we need a new major release.

since it's time for a major release, closing this PR
a new PR for a major release will be raised


Extend normalizeSpriteURL to handle URLs with density qualifiers

Previously, the function normalizeSpriteURL could only handle URLs in the format /mapbox/streets-v12.png, /mapbox/streets-v12.json. This commit modifies the function to also accommodate URLs with density qualifiers, like<EMAIL_ADDRESS><EMAIL_ADDRESS>

Thanks Rowan Winsemius! Your plugin fixed my Mapbox and MapLibre issue.
I found a small bug with density qualifiers and submitted a PR to fix it.


A man page, makefile

Added a man page for gowall plus a Makefile and updated the readme.

Hey sorry for the delay in reviewing the PR
Okay so, i dont think a man page is needed, everything is documented in the repo in detail here and also the user can just use the -h flag to see how a command works , what args are needed and the available flags
Im 50/50 with the makefile , its not like there is much to be automated in the install/clean up process really, i will revisit this one though in the future
And i saw the change in the readme about the hyperlink i will add it now


Lint by default

Thinking it makes more sense to have this on as a default.

I was thinking the exact same thing today. lint should be on by default.

@simonsmith on the other hand today I was thinking that linting is something that I've ran with a pre-commit hook or npm test.
However since we are already using postcss-bem-linter maybe it is fine to enable it.

I don't think that having it on or off changes how that work flow would function. If you wanted to lint separately to preprocessing you'd need to set up stylelint outside of the preprocessor.

oh nvm I just sa that postcss-reporter's throwError is false by default

That brings me neatly to another suggestion :)
Having an -e flag to throw error. In nearly every SUIT repo we have a config file that sets lint to true, and throwError to true. With an extra cli flag we could eliminate that config file entirely.

Sounds good to me


Links don't open when left clicking

Left clicking on links don't open them. Only right clicking an choosing Open Link or Open Link in Ferdi works.
Here's an error from dev tools that appears when left clicking:
C:\Users\Myuser\AppData\Local\Programs\ferdi\resources\app.asar\node_modules\@sentry\browser\dist\helpers.js:91 Uncaught Error: An object could not be cloned.
    at EventEmitter.i.send.i.send (electron/js2c/renderer_init.js:75)
    at HTMLElement.<anonymous> (C:\Users\Myuser\AppData\Local\Programs\ferdi\resources\app.asar\models\Service.js:1)
    at HTMLElement.sentryWrapped (C:\Users\Myuser\AppData\Local\Programs\ferdi\resources\app.asar\node_modules\@sentry\browser\dist\helpers.js:74)
    at WebViewImpl.dispatchEvent (electron/js2c/renderer_init.js:155)
    at dispatchEvent (electron/js2c/renderer_init.js:143)
    at EventEmitter.<anonymous> (electron/js2c/renderer_init.js:143)
    at EventEmitter.emit (events.js:223)
    at EventEmitter.emit (domain.js:475)
    at Object.onMessage (electron/js2c/renderer_init.js:115)
i.send.i.send @ electron/js2c/renderer_init.js:75
(anonymous) @ C:\Users\Myuser\AppData\Local\Programs\ferdi\resources\app.asar\models\Service.js:1
sentryWrapped @ C:\Users\Myuser\AppData\Local\Programs\ferdi\resources\app.asar\node_modules\@sentry\browser\dist\helpers.js:74
dispatchEvent @ electron/js2c/renderer_init.js:155
dispatchEvent @ electron/js2c/renderer_init.js:143
(anonymous) @ electron/js2c/renderer_init.js:143
emit @ events.js:223
EventEmitter.emit @ domain.js:475
onMessage @ electron/js2c/renderer_init.js:115

Environment:

Operating System: Windows 10 x64
Ferdi Version: 5.6.0-beta.5

Tested on services: Slack, Messenger

holding CTRL while clicking the link also works as a temporary workaround

Clicking with the middle mouse button works too

Same OS and Ferdi Version, tried CTRL + Left Click and Middle click. Links still won't open.

Same OS and Ferdi Version, tried CTRL + Left Click and Middle click. Links still won't open.

Also seems to be an issue in any service I have tried so far. GMail, Discord, Slack, Telegram.

Also seems to be an issue in any service I have tried so far. GMail, Discord, Slack, Telegram.

This is now fixed by https://github.com/getferdi/ferdi/pull/1474 - which has just been merged! Please pull and rebuild from source, or wait for tonight's nightly build.


Show progress of a run

Currently when starting a run it stays visualized in the "new" state until it finishes:

Also on the service page you see all actors being in a "new" state, even while some of them are already OK:

We need a way to see the progress:

show which step already finished successfully
what the engine is doing now

Implemented in https://github.com/Jumpscale/portal9/commit/5334cde27584cf6da3ff8be38edd59c6db964d8b (Now we can see the state of a run and its steps or all of the runs without refreshing the page)


UMM-G support (SB)

Added UMM-G support for the following checks:

Range Date Time Logic Check 1
Range Date Time Logic Check 2
DateTime Format Check
URL Health and Status Check
Delete Time Check
Characteristic Name Check

@spa0002 thanks for catching that! just pushed a commit with that fixed

For the Characteristic Name Check, not sure it would apply for the sensor fields (e.g. "Platforms/Instruments/ComposedOf/Characteristics/Name"). Schema: https://git.earthdata.nasa.gov/projects/EMFD/repos/unified-metadata-model/browse/granule/v1.6.1/umm-g-json-schema.json#985

In rule_mapping.json, need to add "OrbitCalculatedSpatialDomains/EquatorCrossingDateTime" for the datetime_format_check

In rule_mapping.json, need to add “MetadataSpecification/URL” for the url_check


Domain Issues. Says its unsecure.

Same problem, i also tested it on vm, auth seems broken

Sorry your having issues with the template! Could you provide more information of the issue so I can reproduce it ?
Is this what you are referring to ?

As you can see i have a different flavour of that, not in local host but directly on the domain you assigned to it.

Thank you for the report! I was able to replicate the issue with Browserstack and found that this issue is affecting some devices in other locations. For some reason it only affects some devices.
From my research so far is that it may of been flagged as a false positive on Google Safe Browser list or something in some locations ? I filed a report to Google Safe Browsing  for a false phishing flag though so hopefully will be fixed soon.
https://stackoverflow.com/questions/72503425/how-do-i-fix-this-phishing-warning-in-my-app-deployed-in-vercel
From my knowledge, this issue is related to the domain deployed site https://astro-firebase-svelte-tailwind-starter.vercel.app/ so if it you use the template for you app should be okay I believe.
I will keep looking more into this issue and try to find out why it was flagged though if it is an issue with the template ui itself. If the issue persists let me know. Also, if you haven't already clear browser cache and see if the site information was updated and stuff.

hi just wanted to leave a update here
the site still has the flag for the suspicious site after I filed a report so I decided to redeploy it with a different domain instead since it hasn't been fixed yet so here is the new domain. Here is new deployed site without issue:
https://astro-firebase-svelte-starter.vercel.app/


Question Regarding multiple datagrids with pagination on one Page

Hello,
I ran into an issue on clarity v0.13 when I had 2 datagrids with pagination shown at the same time.
If the number of records in both tables had met the pagination limit (in this case 10).  The first datagrid would behave normally but the second data grid would disappear from the page. I worked around this by showing only one datagrid at a time using *ngIf.  My question is will this still be an issue in Clarity V2?

@tkhan29
I don't think we've seen this issue before. Can you create a stackblitz for it recreating the issue?

Below is the stackblitz link.  I noticed while setting it up that this issue occurs specifically with tables in clr-tab-content.  Please let me know what you find.  Thanks.
-Taneem
https://stackblitz.com/edit/clarity-light-theme-v013-39pvns

Notice the first datagrid appears but the other 2 do not.

Any update?

Hi @tkhan29
You're missing *clrIfActive directives on your clr-tab-content tags. Here is a working example.
More examples in our documentation here


[REPO] Contributing link is broken

The link Get Started Contributing currently returns 404.

Fixed. Thanks!


Ort::InitApi() is only called after Generator related code is invoked

OrtEnv is created at
https://github.com/microsoft/onnxruntime-genai/blob/a6bec83bf02667f6a9c6aa6340842f46e001578c/src/generators.cpp#L14
Calling other APIs before initializing OrtEnv:
import onnxruntime_genai as ort_genai
ort_genai.get_current_gpu_device_id()

Will fail:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
onnxruntime_genai.onnxruntime_genai.OrtException: /onnxruntime_src/include/onnxruntime/core/common/logging/logging.h:320 static const onnxruntime::logging::Logger& onnxruntime::logging::LoggingManager::DefaultLogger() Attempt to use DefaultLogger but none has been registered.

This should not happen. The static global variables should be created when the module is imported.
import onnxruntime_genai as ort_genai

should create the static variables inside ort-genai.
So, that should never happen. I just tried it on my linux machine and didn't see any error reported. Not sure if something changed since this issue was created and now. I will close this issue.


Load tweaks necessary to load the Rabinowitz data

Summary Change Description
This includes changes necessary to resolve issues encountered when attempting to load the Rabinowitz data.  To be precise, one study (MN_exp027e_KR_infusion) contained 2 accucor files of MSRun data.  The 2 files contained the same samples, and mostly had no compound overlap, except 1: proline.  When the second file load tried to do a get_or_create for the peak group for proline, it tried to create a new record (because the peak annotation file linked in the peak group record differed), but it had associated the peakgroup with an existing MSRunSample, because all of its parameters were the same (same sequence, same sample, same polarity (positive).  Both sets of MSRuns only differed by scan range.  One was high mz and one was low mz.  So to solve this, I added mz_min and mz_max to MSRunSample and updated the loading code to accept those inputs.
Affected Issues/Pull Requests

Partially addresses https://github.com/PrincetonUniversity/tracebase-rabinowitz-data/issues/80
Partially addresses https://github.com/PrincetonUniversity/tracebase-rabinowitz-data/issues/81
Partially addresses https://github.com/PrincetonUniversity/tracebase-rabinowitz-data/issues/82
Merges into PR #831

Review Notes

See comments in-line.
Checklist

This pull request will be merged once the following requirements are met.  The
author and/or reviewers should uncheck any unmet requirements:

Review requirements

Minimum approvals: 1
No changes requested
All blocking issues resolved by reviewers
Specific reviewers: @add_username_here

Review period: 2 days

Associated issue/pull request requirements:

[x] All requirements in affected issues marked "resolved" are satisfied
[x] All required pull requests are merged (or none)

Basic requirements

[x] All linters pass
[x] All tests pass
[x] All conflicts resolved

Overhead requirements

[x] New/changed method tests implemented/updated (or no change)
[x] Updated Unreleased section of changelog.md (or no change)
[x] Migrations created & committed (or no change)

BTW, @lparsons - I'm just about the start going over the review of 832. Just wanted to let you know that I have a branch of the Rabinowitz repo with all the necessary updates to work with this branch of the tracebase repo. I'll create a PR for the rabinowitz repo once the code is good to go.


Add stdscr()

Fixes #40

The test failure for windows are:

Some random SSL error for "Environment: channel=beta, target=i686-pc-windows-msvc"
Some pre-existing failures for the windows-gnu toolchain

I wonder if theres a way to enable the newterm() workflow without exposing a function like this, since I like that currently the only way to get a Window is to call initscr(), ie. a user cannot accidentally attempt any Window specific calls without having initialized the curses system. (There's still space for things not working as shown in #44 so it's not perfect).
This would be a place where I think it'd be warranted to differ from the regular ncurses API a bit more.
How does a program usually do things with newterm()? I haven't used it myself.

I either call stdscr, or methods that implicitly use stdscr internally.
We could have the newterm method return a window, either as sole or second return value.

If newterm returning a Window works I'd prefer that over exposing stdscr.

Sounds good. Newterm is supposed to replace initscr, so returning a window as well makes sense.

Can we merge this one, since it exposes a pretty useful function?

Another thing, please add unicode support to this function as well like done in https://github.com/ihalila/pancurses/commit/16139e4fa7318e6fde742b7c93ba169adb424ee5.
/// Returns the default Window.
pub fn stdscr() -> Window {
   platform_specific::pre_init();
    let window_pointer = platform_specific::_stdscr();
    window::new_window(window_pointer, true)
}


Some way to download latest release from persistent URL

Currently each release involves updating download URLs. We should have a URL that downloads latest version.

Perhaps have a Git branch called latest that points to the latest release?

Done.


Create basic "Hello World" Vue app

🚀  Goal
Set up a basic Vue.js project structure and create a simple application that renders the words "Hello World" on the screen. This will serve as the foundation for our Decentralized Web App (DWA) starter in Vue.
🤔 Background
We're expanding our DWA starter collection to include Vue.js. This task is the first step in creating a Vue.js version of our DWA starter app, which will help developers kickstart their Web5 projects using Vue.

This is part of our larger project to create a Vue.js DWA starter. See our main issue here for the full context and list of all related tasks.

🔑  Tasks and Acceptance Criteria

[ ] Set up a new Vue.js project using Vue CLI or Vite
[ ] Create a basic project structure following Vue.js best practices
[ ] Ensure landing page renders the words "Hello, World!"
[ ] Ensure the app runs without errors

🌟 Resources
Vue.js Documentation
Vue CLI or Vite
Vue.js Style Guide
Getting Started

Comment ".take" on this issue to get assigned
Fork the repository and create a new branch for this task
Follow the tasks outlined above
Submit a pull request with your changes
Respond to any feedback during the review process

Questions?
If you have any questions or need clarification, please comment on this issue or join our Discord community.
Happy coding! 🎉

.take

.take


append a pyamDataFrame with different years, or with subannual

When working on datasets for a case study exercise, it may happen that some of the datasets hold data on 1 year only... thus in the process of data creation it may be useful to be able to concatenate 2 IAMDataFrames which do not have the same years columns. It appears that the append method only works when the 2 IAMDataFrames have the same list of years
Same thing when trying to concatenate 2 IAMdataframes, one with a subannual column, and the other one without. Even if the list of years is the same, it doesn't work
In both cases the error message is the same:
Traceback (most recent call last):
File "", line 1, in
File "XXX\pyam\core.py", line 427, in append
raise ValueError('Incompatible timeseries data index dimensions')
ValueError: Incompatible timeseries data index dimensions

Thanks @sandrinecharousset for raising this issue.
About the first part of the issue - appending/concatenating should work fine even if the two IamDataFrames have different list of years (if these are really just years as integers, see below). I did some tests and cannot replicate this error.
About the second part, you're right, appending/concatenating only works if both IamDataFrames have the same time domain:

years as integers
years as integers plus a subannual column
time domain in the datetime format

Will think about how to support this operation...

@danielhuppmann regarding appending/concatenating should work fine even if the two IamDataFrames have different list of years I cannot any more reproduce the error, so perhaps sth else was wrong.... then first part of issue closed.... Sorry


Implemented long press logic in cupertino textfield

Proposed Changes
Added native behavior for long tap and drag in Cupertino text field. Unlike Android, long tap and drag gesture doesn't enter selection mode, It just moves the cursor.
Testing
Test: Open test app, go Components -> Text fields -> Almost fullscreen, tap on the textfield to focus it, then try to long tap in somewhere else and drag.
Issues Fixed

https://youtrack.jetbrains.com/issue/COMPOSE-449/iOS-caret-movement-by-long-tap-in-textfields
https://youtrack.jetbrains.com/issue/COMPOSE-448/iOS-separate-long-tap-logic-and-drag-selection-logic-in-textfields (it is related to the issue above)

Google CLA
You need to sign the Google Contributor’s License Agreement at https://cla.developers.google.com/.
This is needed since we synchronise most of the code with Google’s AOSP repository. Signing this agreement allows us to synchronise code from your Pull Requests as well.

Should be merged only after https://github.com/JetBrains/compose-multiplatform-core/pull/858


Analytic

Try replacing Boris solver with Tom's analytic solutions in 3D, check energy conservation.

try different approach


Generation of preview images

Generate preview images from different formats.

This is not easy for Shapefiles as far as I know.

Looks like we could use gdal_rasterize or shell out to something like shp2img.

I was successful generating a preview using these command invocations:
gdal_rasterize -burn 255 -tr 400 400 -l S_566_1914_lines -of GTiff S_566_1914_lines.shp preview.tif
gdal_translate -of PNG preview.tif preview.png

[ ] Assign FileSet pulldown to file_set.original_file.has_mime_type (PCDM::File)
[ ] Document MIME types with parameters for Geo (see #63)
[ ] Clone curation concerns' derivatives for our own create_derivatives
[ ] Create Processors for the geo derivatives

See https://github.com/projecthydra-labs/curation_concerns/issues/258


Tutorial6: Stereopsis

I added a tutorial which walks the user through a simple implementation of stereopsis view using ratcave

Pull Request Test Coverage Report for Build 140

0 of 0   changed or added relevant lines in 0 files are covered.
6 unchanged lines in 1 file lost coverage.
Overall coverage increased (+1.3%) to 81.438%

Files with Coverage Reduction
New Missed Lines
%

ratcave/camera.py
6
124.86%

Totals

Change from base Build 137:
1.3%

Covered Lines:
1110

Relevant Lines:
1363

💛  - Coveralls

Accepted!


Disallow setters for known mutable property types

Fixes: https://github.com/gradle/gradle/issues/9068
Test failures before the fix:

Merged, thanks for the thorough review!


Animated scroll to first error after form validate

updateInputs scrolls to the first visible input that has an error.
I'd like to do an animated scroll, but I can't because of this.

Not sure about your validation options, we used afterValidate event to achieve this behavior with ajax validation, something like:
$('#form-id').on('afterValidate', function (event, messages) {
    if(typeof $('.has-error').first().offset() !== 'undefined') {
        $('html, body').animate({
            scrollTop: $('.has-error').first().offset().top
        }, 1000);
    }
});

Yes, but that doesn't work properly. The hardcoded jump causes the page to jump to the top, then in the next tick of jquery's animation it jumps back down and then it animates up. That initial jump is the problem.

Line 504 of yii.activeform.js has an error and scrolling doesn't work:
$(window).height => $(window).height()
                if (top < wtop || top > wtop + $(window).height) {
                    $(window).scrollTop(top);
                }

Thanks. I fixed it in my PR but the bug is in the original code.

The default code also doesn't take into account any fixed headers, so you'll end up with inputs partially under the header. The basic template's contact form exhibits this problem.


Not able to write output into KAFKA

Describe the bug
As shown in below logs, I am running goflow2 and kafka containers in 2 separate machines. When I try to write output into a kafka topic on the broker <IP_ADDRESS>:9092 it just fails.
goflow2 is able to create the respective topic in the kafka instance but facing issue when writing the messages into it as it tries to resolve dns for "kafka1" which is the container name which is hosting the kafka instance.
Any specific reason why it tries to pick "kafka1" vs configured broker ?
312:~/goflow2/goflow2$ sudo docker container run -p 6343:6343/udp -p 2055:2055/udp -it --name goflow2 netsampler/goflow2:ee095a9
~ $
~ $
~ $ ./goflow2 -transport=kafka -transport.kafka.brokers=<IP_ADDRESS>:9092 -transport.kafka.topic=flows -format=text
INFO[0000] starting GoFlow2
INFO[0000] starting collection                           blocking=false count=1 hostname= port=6343 queue_size=1000000 scheme=sflow workers=2
INFO[0000] starting collection                           blocking=false count=1 hostname= port=2055 queue_size=1000000 scheme=netflow workers=2
ERRO[0077] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"
ERRO[0102] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"
ERRO[0122] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"
ERRO[0142] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"
ERRO[0162] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"

To Reproduce
Steps to reproduce the behavior:

Run GoFlow2 with arguments '...'
./goflow2 -transport=kafka -transport.kafka.brokers=<IP_ADDRESS>:9092 -transport.kafka.topic=flows -format=text

Receive samples '....'

See error

Expected behavior
goflow2 should be able to write into respective topic created in kafka
Captures
If applicable, add output (JSON, protobuf), packet captures and device configuration.
Sampler device:

Brand: [e.g. Cisco, Juniper, Arista, Mikrotik]
Model: [e.g. MX, QFX]
Version: [e.g. 22]
Estimated flow traffic: [e.g. 5000 samples per second]

GoFlow2:

Version: [e.g. v2.0.0]
-~ $ ./goflow2 -v
GoFlow2 v2.1.2-1-gee095a9 (2024-02-27T11:23:15-0800)

Environment: [e.g. Kubernetes, Docker, Debian package]
Docker

OS: [e.g. Linux Ubuntu Server 23.04]
Ubuntu 22.04

Additional context
Add any other context about the problem here.

Hello @ACodingfreak,
Are you running Kafka inside a docker-compose?
My guess is that you do not have Kafka configured with KAFKA_ADVERTISED_LISTENERS=<IP_ADDRESS>:9092 which results in Kafka giving its hostname kafka1. You could also manually add the following inside the /etc/hosts file of the machine where GoFlow2 lives:
<IP_ADDRESS> kafka1

@lspgn - Thanks for the reply
Yes I am running kafka broker via docker-compose in node2 and goflow2 as a container in node1.
Below is the sample docker-compose configuration I was using for kafka broker.
      KAFKA_BROKER_ID: 1
      KAFKA_LISTENERS: INTERNAL://:9092,EXTERNAL_SAME_HOST://:29092,EXTERNAL_DIFFERENT_HOST://:29093
      KAFKA_ADVERTISED_LISTENERS: INTERNAL://:9092,EXTERNAL_SAME_HOST://localhost:29092,EXTERNAL_DIFFERENT_HOST://:29093
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL_SAME_HOST:PLAINTEXT,EXTERNAL_DIFFERENT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1

But when i execute the goflow2 inside a container from node1, I can see that topic named flows is created properly but writing messages into kafka is failing still with the DNS resolution error as shown below
~ $ ./goflow2 -transport=kafka -transport.kafka.brokers=<IP_ADDRESS>:29093 -transport.kafka.topic=flows -format=text
INFO[0000] starting GoFlow2
INFO[0000] starting collection                           blocking=false count=1 hostname= port=6343 queue_size=1000000 scheme=sflow workers=2
INFO[0000] starting collection                           blocking=false count=1 hostname= port=2055 queue_size=1000000 scheme=netflow workers=2
ERRO[0083] transport error                               error="kafka transport kafka: Failed to produce message to topic flows: dial tcp: lookup kafka1 on <IP_ADDRESS>:53: server misbehaving"

@ACodingfreak : yes, the advertised listener is wrong, it keeps returning kafka1:9092 this is why I was also suggesting the /etc/hosts method since I'm not heavily familiar with Kafka's environment variable.
or try KAFKA_LISTENERS: CLIENT://localhost:9092 and make sure the docker-compose open ports 9092


[MRG] Add a /health endpoint to BinderHub

This reports the health of BinderHub and the services it needs to run.
It is quite primitive but maybe good enough to get going? In particular the request to /health will take a long time if we have to retry connections to the hub or the registry. A smarter way would be to monitor those independently of someone calling the end point and having the most recent results available. Not quite sure what the best way to do that would be (where would the results be stored so they are "globally available"?)

Another question: what status code should this return when something is not working but we still want to send the JSON body (so that the requester can see what is broken)? I'd suggest 503 but that is nothing more than a hunch.

Ready for some review. I don't know a good way to test the docker registry part :-/ Planning on testing that once it is deployed.

I'll merge it now. I think there are bound to be a few snags but I can't find any more right now -> needs some real world traffic/usage.


emacs-lsp-booster  npm lsp servers not working

On windows, many lsp servers are node modules installed *\Roaming\npm directory.  When emacs executes emacs-lsp-booster with command emacs-lsp-booster pyright-langserver --stdio, it fails. This problem is in eglot and lsp-mode  with booster. With out booster eglot and lsp-mode works fine. This issue is not there in linux as path is resolved easily.
Steps to Reproduce
emacs-lsp-booster pyright-langserver --stdio
[2024-04-15T14:03:01Z INFO  emacs_lsp_booster::app] Running server "pyright-langserver" "--stdio"
[2024-04-15T14:03:01Z INFO  emacs_lsp_booster::app] Will convert server json to bytecode! bytecode options: BytecodeOptions { object_type: Plist, null_value: Nil, false_value: Nil }
Error: program not found
Following command works
emacs-lsp-booster pyright-langserver.cmd --stdio
[2024-04-15T14:02:56Z INFO  emacs_lsp_booster::app] Running server "pyright-langserver.cmd" "--stdio"
[2024-04-15T14:02:56Z INFO  emacs_lsp_booster::app] Will convert server json to bytecode! bytecode options: BytecodeOptions { object_type: Plist, null_value: Nil, false_value: Nil }
Content-Length: 170
#[0 "\300\301\302\303\304\305\306\307\310F\257\6\207" [:jsonrpc "2.0" :method "window/logMessage" :params :message "Pyright language server 1.1.358 starting" :type 3] 17]Content-Length: 228

For windows if we modify  let mut cmd = std::process::Command::new to include
let output = if cfg!(target_os = "windows") {
Command::new("cmd")
.args(["/C", "echo hello"])
.output()
.expect("failed to execute process")
}
it could fix the issue... [I am not expert in Rust!]
Ref : https://doc.rust-lang.org/std/process/struct.Command.html

I tested on windows and it is working perfectly. Did not test on Linux.
Thanks for the fix!

https://github.com/blahgeek/emacs-lsp-booster/releases/tag/v0.2.1


verilator: 3.924 -> 3.926

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from verilator.
meta.description for verilator is: '"Fast and robust (System)Verilog simulator/compiler"'.

Checks done (click to expand)

built on NixOS
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_bin passed the binary check.
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_bin_dbg passed the binary check.
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_coverage_bin_dbg passed the binary check.
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator passed the binary check.
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_coverage passed the binary check.
Warning: no invocation of /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_profcfunc had a zero exit code or showed the expected version
5 of 6 passed binary check by having a zero exit code.
0 of 6 passed binary check by having the new version present in output.
found 3.926 with grep in /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926
directory tree listing: https://gist.github.com/7378851169ef1d710b92ca6d8d549c55
du listing: https://gist.github.com/8fb0e7f1ce124e6f49705cbe626d8d90

Instructions to test this update (click to expand)

One-time optional setup to skip building using Cachix:

Install cachix from https://cachix.org/
Use r-ryantm's cache:cachix use r-ryantm

Test this update by entering a nix shell, seeing what is inside the
result, and if applicable, running some binaries:
nix-shell --pure -I nixpkgs=https://github.com/r-ryantm/nixpkgs/archive/244968b706bc6592d523610f8a5e5df3a6bb4273.tar.gz -p verilator
ls -la /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926

cc @thoughtpolice for testing.

Success on x86_64-linux (full log)
Attempted: verilator
Partial log (click to expand)
shrinking /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_bin
gzipping man pages under /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/share/man/
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin
patching script interpreter paths in /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_profcfunc: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/q9ajsngf2w3r10dg7b1148wzq1avp4gj-perl-5.28.0/bin/perl"
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator_coverage: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/q9ajsngf2w3r10dg7b1148wzq1avp4gj-perl-5.28.0/bin/perl"
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926/bin/verilator: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/q9ajsngf2w3r10dg7b1148wzq1avp4gj-perl-5.28.0/bin/perl"
checking for references to /build in /nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926...
/nix/store/dbwlahgbsa4111cpm3w2dnwpqgh01z2l-verilator-3.926

Success on x86_64-darwin (full log)
Attempted: verilator
Partial log (click to expand)

post-installation fixup
gzipping man pages under /nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926/share/man/
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926/bin
patching script interpreter paths in /nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926
/nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926/bin/verilator_profcfunc: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/xhir85mv5mfwdkbisnx3bl9h6agjmix4-perl-5.28.0/bin/perl"
/nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926/bin/verilator_coverage: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/xhir85mv5mfwdkbisnx3bl9h6agjmix4-perl-5.28.0/bin/perl"
/nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926/bin/verilator: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/xhir85mv5mfwdkbisnx3bl9h6agjmix4-perl-5.28.0/bin/perl"
/nix/store/lx7rl43vx4kspnnbnn26bg053mbjg3sq-verilator-3.926

Success on aarch64-linux (full log)
Attempted: verilator
Partial log (click to expand)
shrinking /nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/bin/verilator_bin
gzipping man pages under /nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/share/man/
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/bin
patching script interpreter paths in /nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926
/nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/bin/verilator_profcfunc: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/p3cg3qswdvq6vdjigs83did8km5dlqk7-perl-5.28.0/bin/perl"
/nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/bin/verilator_coverage: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/p3cg3qswdvq6vdjigs83did8km5dlqk7-perl-5.28.0/bin/perl"
/nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926/bin/verilator: interpreter directive changed from "/usr/bin/env perl" to "/nix/store/p3cg3qswdvq6vdjigs83did8km5dlqk7-perl-5.28.0/bin/perl"
checking for references to /build in /nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926...
/nix/store/rdwl6gnkmm2gvh5y004qg97wi18vk550-verilator-3.926