synth_xilinx creates too many RAMB18E1 instances

For the code below, the synth_xilinx pass is detecting the block ram correctly, but it is mapping to two RAMB18E1 but it should map to just one. I checked with vivado that this does in fact map to only 1 RAMB18E1 block.
=== reg_file ===

   Number of wires:                 11
   Number of wire bits:            112
   Number of public wires:           7
   Number of public wire bits:      76
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                  2
     RAMB18E1                        2

module reg_file(input wire clk,
                input wire wr_en,
                input wire [9:0] w_addr,
                input wire [9:0] r_addr,
                input wire [17:0] w_data,
                output reg [17:0] r_data,
                output reg [17:0] r_data2);

  reg [17:0] ram [0:1023];

  always @(posedge clk)
  begin
    r_data <= ram[r_addr];
  end

  always @(posedge clk)
  begin
    if (wr_en)
      ram[w_addr] <= w_data;
    r_data2 <= ram[w_addr];
  end

endmodule

Yes. Yosys does not currently support inference of block rams ports that that simultaneously perform read and write to the same address. Adding support for that is not on my immediate todo list. Fell free to dig into the memory_bram command and see if you can add this feature.


[Ruby] grpc_tools_ruby_protoc generates wrong namespace for fully-qualified rpc response type

What version of gRPC and what language are you using?
grpc_tools_ruby_protoc 1.30.1 (see https://rubygems.org/gems/grpc-tools/versions/1.30.1) on Ubuntu bionic
What did you do?
Running the grpc protoc plugin on the google.cloud.oslogin.v1 proto (as part of client library codegen). The GetSshPublicKey and UpdateSshPublicKey RPCs generate an incorrect Ruby type for their response type.
Proto: https://github.com/googleapis/googleapis/blob/1b969c28a6579265e89cd35e6c2ecacc89970e2d/google/cloud/oslogin/v1/oslogin.proto#L72
Result: https://github.com/googleapis/google-cloud-ruby/pull/7036/files#diff-963ba7c73491dae821dd8275d003634e (you'll have to click View Diff to see it).
Here's a screen shot in case the PR gets closed:
Note that the generated type of the response is incorrect (part of the namespace is duplicated).
Some items of note that might be pertinent to this case:

The response in the proto is fully-qualified.
The proto has defined a custom Ruby namespace (i.e. a ruby_package proto option). The response type is also in a custom Ruby namespace.

Note that the "extra" namespace path that is being added corresponds to the "fully-qualified" segments of the response type, but does not conform to the custom Ruby namespace for this proto. (Look carefully at the case of the "L" in "OsLogin".)
This appears to be a regression in grpc_tools 1.30. (Previous generation runs using 1.28 did not exhibit this behavior.)

Here's a simpler reproducible test case:
myapi/foo/foo1.proto:
syntax = "proto3";
package myapi.foo;
import "myapi/bar/bar1.proto";
message MyRequest {
  string name = 1;
}
service MyService {
  rpc DoSomething (MyRequest) returns (myapi.bar.MyResponse);
}

myapi/bar/bar1.proto:
syntax = "proto3";
package myapi.bar;
option ruby_package = "Myapi::Bar";
message MyResponse {
  string name = 1;
}

Run:
$ protoc -I=. myapi/foo/foo1.proto myapi/bar/bar1.proto --grpc_out=. --plugin=protoc-gen-grpc=./bins/opt/grpc_ruby_plugin

Output myapi/foo/foo1_services_pb.rb:
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: myapi/foo/foo1.proto for package 'myapi.foo'

require 'grpc'
require 'myapi/foo/foo1_pb'

module Myapi
  module Foo
    module MyService
      class Service

        include GRPC::GenericService

        self.marshal_class_method = :encode
        self.unmarshal_class_method = :decode
        self.service_name = 'myapi.foo.MyService'

        rpc :DoSomething, MyRequest, Myapi::Bar::Myapi::Bar::MyResponse
      end

      Stub = Service.rpc_stub_class
    end
  end
end

Notice the Myapi::Bar::Myapi::Bar::MyResponse.
This only reproduces in 1.30.x but not 1.29.x or before.
Looking into ruby_generator.cc to see what the problem is.


added support for gridView & exporting index

added support for gridView through enum
fixes #5
also exporting index to people so they can use it to customize the item builder.

Codecov Report

Merging #7 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #7   +/-   ##
=======================================
  Coverage   58.69%   58.69%
=======================================
  Files           3        3
  Lines          46       46
=======================================
  Hits           27       27
  Misses         19       19

Continue to review full report at Codecov.

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

this is ready for review, if you have soem time @excogitatr

Everything works man. Great work @Saifallak 🎉

@all-contributors please add @Saifallak

@all-contributors please add @Saifallak for code

Thanks @excogitatr


Provide Banano fonts

https://banano.cc/presskit/ defines 2 fonts:

We have 2 fonts, one primary, one secondary.

Neue Hans Kendrick. We use the primary font for almost everything, like titles, paragraphs etc.
Overpass Mono we use the secondary font for Banano addresses, or any text block that requires same width lines.

[x] Acquire and add Neue Hans Kendrick to repo

[x] Provide means of linking Overpass Mono

Added Neue Hans Kendrick to /src/assets/fonts with this commit

I was thinking of using a font cdn but that works fine too I guess lol

I was thinking of using a font cdn but that works fine too I guess lol

Neue Hans Kendrick is not a free font. Banano has it licensed tho.

Ah okay, gotcha. Interesting

Overpass Mono is availabe on googlefonts:
Suggest to use it from there unless there is a better font cdn.
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Overpass+Mono">


switch to supported System.CommandLine nuget

Currently we use System.CommandLine.Experimental 0.3.0
https://www.nuget.org/packages/System.CommandLine.Experimental/0.3.0-alpha.19577.1#show-github-usage
which is deprecated and is no longer maintained.
We should switch to recommended nuget System.CommandLine 2.0.0
https://www.nuget.org/packages/System.CommandLine/
Blocked by #149 .

#149 merged, so it's un-blocked now


Percent complete

Note that this should be merged in parallel with matching PR in machine: https://github.com/sillsdev/machine/pull/52

This change is

This implements https://github.com/sillsdev/serval/issues/44.

src/Serval.Translation/Services/TranslationPlatformServiceV1.cs line 236 at r2 (raw file):

    {
        await _builds.UpdateAsync(
            b => b.Id == request.BuildId && (b.State == JobState.Active || b.State == JobState.Pending),

What was the reason for this change?  What are the implications of updating build status when queued?  It looks to fix a bug when in Serval the MongoDB has the item as queued while in fact it is active.  Am I correct?

src/Serval.Translation/Services/TranslationPlatformServiceV1.cs line 236 at r2 (raw file):

    {
        await _builds.UpdateAsync(
            b => b.Id == request.BuildId && (b.State == JobState.Active || b.State == JobState.Pending),

What was the reason for this change? What are the implications of updating build status when queued? It looks to fix a bug when in Serval the MongoDB has the item as queued while in fact it is active. Am I correct?

Almost - this is to allow status updates while the build is queued/pending. What this accomplishes is this: In the message field of the ProgressStatus, we can record how many jobs are ahead of the build in the queue. Is that alright? Do you see that causing issues elsewhere?

src/Serval.Translation/Services/TranslationPlatformServiceV1.cs line 236 at r2 (raw file):
Previously, Enkidu93 (Eli C. Lowry) wrote…
Almost - this is to allow status updates while the build is queued/pending. What this accomplishes is this: In the message field of the ProgressStatus, we can record how many jobs are ahead of the build in the queue. Is that alright? Do you see that causing issues elsewhere?

Great - that makes sense.

Also per @ddaspit's comment - it appears that only some of the items on the hangfire queue are put onto the ClearML queue - we need to make a decision what to do about this.  Should we put them all on the ClearML queue?  How many can it handle?  Should the be in both queues?  What is the best mechanism for this?  If we have 50 items in the ClearML queue, can we make one call to see everything in the queue instead of 50 calls?  What about multiple instances of Serval using the same ClearML instance (QA, prod)?  Should they have different project names such as Serval-<random 6 digit Hex ID> or, have them all in the same project but have the experiment name be -?  Note that machine does not know what instance it is actually in...

One potential solution could be to query ClearML every 5 seconds once for all queued items that match a specific pattern (that corresponds with the specific instance of Serval) and query MongoDB once for all current builds - and if there is an update to make in MongoDB, make it.  If any jobs have been cancelled, aborted or failed in one (ClearML or MongoDB), update the other.

@ddaspit @johnml1135 Just to verify, I should complete implementing the percent complete functionality (using the lastiteration, 90/10, log metric strategy)? #44 I have stashed local changes with that implementation just about finished. But I just wanted to verify that other developments in the ideas about refactoring to accommodate a queue depth endpoint and avoid polling hadn't changed anything here.

Eli, please connect with Damien to verify. Whatever he says is fine.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eli C. Lowry @.>
Sent: Thursday, August 17, 2023 10:46:54 AM
To: sillsdev/serval @.>
Cc: John Lambert @.>; Mention @.>
Subject: Re: [sillsdev/serval] Percent complete (PR #78)
@ddaspithttps://github.com/ddaspit @johnml1135https://github.com/johnml1135 Just to verify, I should complete implementing the percent complete functionality (using the lastiteration, 90/10, log metric strategy)? #44https://github.com/sillsdev/serval/issues/44 I have stashed local changes with that implementation just about finished. But I just wanted to verify that other developments in the ideas about refactoring to accommodate a queue depth endpoint and avoid polling hadn't changed anything here.
—
Reply to this email directly, view it on GitHubhttps://github.com/sillsdev/serval/pull/78#issuecomment-1682418323, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADIY5NG3IJCHETZ7QEHUL7DXVYVF5ANCNFSM6AAAAAA3J7ZCEU.
You are receiving this because you were mentioned.Message ID: @.***>

@Enkidu93 Yes, let's go ahead and get the percent completed work in. We will handle queue depth and avoid polling in other issues.


Add an explanation about XSS injections

I think it would be very wise to add a proper warning about XSS injections in your README. As it is now, dangerouslySetInnerHTML looks harmless. If "a programmer considers [it] safe", they should take a look at https://zhenyong.github.io/react/tips/dangerously-set-inner-html.html or something.

Hi @mfr-itr. Yes, I agree, I'm going to update the README soon.

Alternatively, you could include a sanitation feature like https://github.com/cure53/DOMPurify.

True. But I'm afraid it's quite big and slow to be non-optional. So I'm leaning towards the first option.

Warning added. Thx again @ mfr-itr


Hide quests that i can't take in NPC GUI

Hi,
Currently, even if a player can not take a quest, he can see the quest into the NPC GUI and the note above the NPC.
Is it possible to hide both things if the player can't take the quest given by a NPC ?
Thanks in advance

If I recall correctly, those are indicators that an NPC has a quest, but not necessarily one that the player can take. So that is intentional.
Perhaps the requested behavior could be added in the future.

Closing due to apparent lack of interest by the community.


font

hi Charles!
How can I change the font to Robot from google fonts?

This worked for me:
https://www.campaignmonitor.com/resources/guides/web-fonts-in-email/
using: http://fonts.googleapis.com/css?family=Roboto

thanks rafael!
do you have a suggestion on which of the three methods to use? and given
that, would you mind teaching me where in the template to add the code?
Miguel Zabludovsky
Slate NYC | CEO
PERMISSION TO GET DIRTY
The fully-integrated, daily home + clothes cleaning service used by over
5,000 people in New York.
Get your first week free by clicking here http://slatenyc.com/.
[image: /admin/uploads/img/412/google.jpg]
http://app.sigbuzz.me/l/L31/Wrp/  473 Porter Avenue Brooklyn NY 11222
W slatenyc.com http://app.sigbuzz.me/l/0jb/Wrp/ | E *
<EMAIL_ADDRESS><EMAIL_ADDRESS>| T*<PHONE_NUMBER>
<%2B1%208005738459> | M<PHONE_NUMBER> <%2B1%209172874978>
Connect with us:     http://facebook.com/slatenyc
http://app.sigbuzz.me/l/Pjb/Wrp/ http://youtube.com/slatenyc
http://delicious.com/slatenyc http://app.sigbuzz.me/l/Djb/Wrp/
http://www.yelp.com/biz/slate-nyc-new-york-2
Email disclaimers are assumed to be a wise precaution. But they are mostly,
legally speaking, pointless. Lawyers and experts on internet policy say no
court case has ever turned on the presence or absence of such an automatic
e-mail footer in America, the most litigious of rich countries.  Many
disclaimers are, in effect, seeking to impose a contractual obligation
unilaterally, and thus are probably unenforceable. This is clear in Europe,
where a directive from the European Commission tells the courts to strike
out any unreasonable contractual obligation on a consumer if he has not
freely negotiated it. And a footer stating that nothing in the e-mail
should be used to break the law would be of no protection to a lawyer or
financial adviser sending a message that did suggest something illegal.
-The Economist (visit the link http://app.sigbuzz.me/l/Mjb/Wrp/)
This email signature has been Crafted by SigBuzz
http://www.sigbuzz.me/?utm_source=craftedbysb&utm_medium=emailfooter&utm_campaign=craftedbysb
On Tue, Mar 14, 2017 at 12:57 PM, Rafael Reyes<EMAIL_ADDRESS>wrote:

This worked for me:
https://www.campaignmonitor.com/resources/guides/web-fonts-in-email/
using: http://fonts.googleapis.com/css?family=Roboto
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/charlesmudy/responsive-html-email-template/issues/26#issuecomment-286487815,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIn9xRbURkdiGMDoZGHgnVIOiLMAlOARks5rlscUgaJpZM4Mc2_n
.

I used the import option.
In the  of your code, if you haven't already created
`
I usually do inline styling, but html * should be how you apply it globally to a page.
ref: http://stackoverflow.com/questions/7025756/how-to-apply-global-font-to-whole-html-document


Support for Optimism op-signer

This is a feature request to support using web3signer as a remote signer for the Optimism op-stack / op-signer
The primary source code for the op-signer is located here and their services can connect to a remote signer, source code here
In testing, we found that there are at least two primary hurdles in using web3signer as a remote signer for OP-Stack (Sequencer, Bather, and Proposer).

web3signer does not currently support an input field
op-service requires a health check endpoint exposed at /healthz

With regards to number 1 above, we found that a simple addition of input alongside data in the following files allows web3sign to correctly sign transactions for the batcher and proposer:
core/service/jsonrpc/EthSendTransactionJsonParameters.java
core/service/jsonrpc/handlers/sendtransaction/transaction/EthTransaction.java

Related issue: https://github.com/ethereum/go-ethereum/issues/15628 (also linked in code above)
We were able to get web3signer to sign valid batcher and proposer transactions, so I don't THINK this would be a huge lift...

Acknowledged. Let us discuss and prioritize this feature with the team.

@non-fungible-nelson @jframe FYI.

@quickchase what is Optimism's appetite to support a PR. We can provide code-reviews and insights as well. Otherwise, we may have to backlog this issue with an uncertain timeline.

The health check - @usmansaleem we should discuss.

@quickchase @non-fungible-nelson  Web3Signer currently exposes /healthcheck which uses Vertx Healthcheck to generate the statuses. https://vertx.io/docs/vertx-health-check/java/. /healthz seems to be kubernetes preferred endpoint. We can expose an alias for /healthcheck as /healthz if https://github.com/ethereum-optimism/optimism/blob/develop/op-node/node/server.go#L97 is able to handle the output of /healthcheck that we have? (My Go is a bit Rusty, no-pun-intended)

vertx dev hint: router.get("/health*") should be able to handle both usecases.

Actually, I think I misspoke about the /healthz endpoint (though it would be a nice to have for docker deployments) and the actual problem is here:
https://github.com/ethereum-optimism/optimism/blob/7ee8cc86400ea1757f4851ca67e32b0f4362cdb7/op-service/signer/client.go#L89
They're sending a JSON-RPC method of health_status and when you send that to their nodes it returns:
'{"jsonrpc":"2.0","id":1,"result":"OK"}'


Remote Configuration Error

I have created a container using Traefik and CouchDB that can be accessed via HTTPS on the public network. When I visit it in the browser, it displays the following interface, which should be correct.

After filling out the configuration in Obsidian, I have checked and found all the settings to be correct. However, when I click on the test button, an error occurs, as shown in the image below. Which part of the configuration should I check to troubleshoot this issue?

Sorry for being late!
Indeed, it is strange...
From the situation, connecting with the request API of Obsidian has succeeded. However, it seems like we have failed with the fetch API of the browser.
In this case, there could be a possible CORS problem, but this is information that we are not informed about.
Would you mind trying to open DevTools by pressing Ctrl+Shift+i, and let me know what errors you see in the Network pane?

Sure.  The following image shows the information in the Network panel of DevTools when I click Test.

I'm on MacOS with latest Obsidian and Obsidian-Livesync v0.23.0. I have Obsidian-Livesync running on separate homelab server with Docker and Traefik setup successfully. I'm still experiencing the same TypeError: Failed to Fetch. Similar logs to user Xushier.
Did anyone figure out how to get this working?


More styles of numeric base notation?

The traditional way to write hex numbers in Intel assemblers is with the h suffix: AB12h, C8h.
However, there are many different ways to write such numbers; the one I'm most familiar with is the C-style 0x prefix: 0xAB12, 0xC8.
The Netwide Assembler accepts a whole 4 ways of annotating numbers as hex: C8h, $0C8, 0xC8 and 0hC8. Are there any plans to add such options here?

Despite the convenience, I don't plan to add C-style or other numeric base notations as traditional CP/M and early 8080 assemblers work with the h suffix. This is enough for my needs.

Okay, I think I'll try implementing that in a fork. Also, sorry for annoying you with the suggestions.

I'm sorry if those words sounded harsh. Although I added that wording to README.md after you opened the recent issues, those words weren't addressed specifically to you. The issues were only an occasion for a clarification I was meaning to post for a long time. I appreciate your feedback, but the changes you suggest aren't in the direction I'm planning for Suite8080.


@As annotation not working for CombinedBy

The problem
Selenide provides @As annotation for PageFactory which is used as a placeholder for element description in the text report.
For example, here in the PageFactory this annotation works as expected:
@As("subtitle")
@AndroidFindBy(xpath = "//android.widget.TextView[@text=\"Demo app for the appium-boilerplate\"]")
@iOSXCUITFindBy(accessibility = "xxxxx")
private WebElement subtitle;

But if you use the annotation with CombinedBy or By, then the text in @As does not show up in the text report in terminal:
@As("support")
private final CombinedBy support = CombinedBy
        .android(AppiumSelectors.withText("Support"))
        .ios(AppiumSelectors.withText("Support"));

@As("support")
private static final By supportBy = AppiumSelectors.withText("Support");

Details
Here is how it looks in terminal:

Is this behavior intentional? Please share if this annotation has any other purpose than providing human-readable alias for page object fields in reports in which case this alias should be displayed as Element descriptor in text/html reports.
Tell us about your environment

Selenide-Appium Version: 7.1.0
Selenide-testng Version: 7.1.0
Java Version: 17
OS Version:  MacOS Sonoma 14.2.1
Application under Test: https://github.com/webdriverio/native-demo-app/releases/tag/v1.0.8

Code To Reproduce Issue [ Good To Have ]
Just add the @Listeners({ TextReport.class }) to TestNG class, and add the slf4j-simple and selenide-testng to get this report in terminal.
TestClass
@Listeners({ TextReport.class })
public class BaseTest {

    @BeforeMethod
    public void setup() {
        SelenideAppium.launchApp();
        HomePage homePage = ScreenObject.screen(HomePage.class);
        homePage.checkTextVisibility();
    }

}

HomePage.class
public class HomePage extends BasePage{

    @As("subtitle")
    @AndroidFindBy(xpath = "//android.widget.TextView[@text=\"Demo app for the appium-boilerplate\"]")
    @iOSXCUITFindBy(accessibility = "xxxxx")
    private WebElement subtitle;

    @As("support")
    private final CombinedBy support = CombinedBy
            .android(AppiumSelectors.withText("Support"))
            .ios(AppiumSelectors.withText("Support"));

    @As("support")
    private static final By supportBy = AppiumSelectors.withText("Support");

    public void checkTextVisibility() {
        $(subtitle).shouldBe(visible);
        $(support).shouldBe(visible);
        $(supportBy).shouldBe(visible);
    }

}

@itkhanz Hi. Anntoation @As was intended to use with those Page Object fields that are initialized by page factory. In other words, which are annotated with @FindBy, @AndroidFindBy etc.
In your code, you just create the field support by yourself, not using annotations.
What you can do:

use method as for SelenideElement:

$(support).as("support").shouldBe(visible);

declare PO fields of type SelenideAppiumElement instead of CombinedBy:

public class HomePage extends BasePage{
    private final SelenideAppiumElement support = $(CombinedBy
            .android(AppiumSelectors.withText("Support"))
            .ios(AppiumSelectors.withText("Support"))).as("combined");
}

What we can do in Selenide:
we could add method as to class CombinedBy. Then you could declare PO fields like this:
    private final CombinedBy support = CombinedBy
            .android(AppiumSelectors.withText("Support"))
            .ios(AppiumSelectors.withText("Support"))
            .as("combined");

Added javadoc to @As annotation: https://github.com/selenide/selenide/commit/17cb5f3ffbd3fff44a5dccc6b2f431087dedda35

@itkhanz Hi. Anntoation @As was intended to use with those Page Object fields that are initialized by page factory. In other words, which are annotated with @FindBy, @AndroidFindBy etc.
In your code, you just create the field support by yourself, not using annotations.
What you can do:

use method as for SelenideElement:

$(support).as("support").shouldBe(visible);

declare PO fields of type SelenideAppiumElement instead of CombinedBy:

public class HomePage extends BasePage{
    private final SelenideAppiumElement support = $(CombinedBy
            .android(AppiumSelectors.withText("Support"))
            .ios(AppiumSelectors.withText("Support"))).as("combined");
}

What we can do in Selenide: we could add method as to class CombinedBy. Then you could declare PO fields like this:
    private final CombinedBy support = CombinedBy
            .android(AppiumSelectors.withText("Support"))
            .ios(AppiumSelectors.withText("Support"))
            .as("combined");

Thank you @asolntsev for the quick help. The second option i.e. declare PO fields of type SelenideAppiumElement instead of CombinedBy seems to work for my use-case.


[windows] invalid compilerPath in c_cpp_properties.json

platform: win11
command: python pico_project.py --gui and "Create VSCode project" is checked.
line 10 in c_cpp_properties.json:
"compilerPath": "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\gcc-arm-none-eabi\bin\arm-none-eabi-gcc.EXE",

currently I just modify '\' to '\\' and everything is ok

Duplicate of #67 ? ping also @ndabas as it looks like you're using the Windows Pico Setup program.

Duplicate of #67 ? ping also @ndabas as it looks like you're using the Windows Pico Setup program.

yes same as #67 and I'm using Windows Pico Setup program.
if I use 'update_vscode_json_to_sdk1_5' branch, compilerPath is ok.


Ghidra will not start if the directory name contains exclamation mark anywhere in the path

Ghidra will not start if the directory name contains exclamation marks anywhere in the path. This problem will occur even then if some directory name contains exclamation marks where you want to run Ghidra.
You will get the bellow error message:
Error: Could not find or load main class LaunchSupport
Caused by: java.lang.ClassNotFoundException: LaunchSupport
Error: Could not find or load main class LaunchSupport
Caused by: java.lang.ClassNotFoundException: LaunchSupport
Error: Could not find or load main class LaunchSupport
Caused by: java.lang.ClassNotFoundException: LaunchSupport
Failed to find a supported JDK.  Please refer to the Ghidra Installation Guide's Troubleshooting section.
Solution:
Do not use exclamation marks on the directory name.
Tested on Windows 10
Example:
Wrong:

Working:

nice find, meanwhile find a fix remove the exclamation mark


Add checks for loops being created on nodes

Addressing issue #1932
The cause of the crash is a buffer overrun in ShaderGraph::topologicalSort() in the line _nodeOrder[count++] = node;. This is caused by a loop edge being present on the 'color_mix' node of the graph object this was called on, which made the sort algorithm malfunction.
Unfortunately I was unable to determine in the time I have available why this loop is created. I didn't want to add a change that hides the underlying problem, which still needs to be fixed. Instead, this PR adds some checks to two locations in the code that throw exceptions when a case of a loop being created is detected, to aid in fixing the real issue and maybe help diagnosing other problems in the future. With this PR the graph editor does not crash any more, instead an error message "Upstream node 'color_mix' has itself as downstream node, creating a loop" is printed to console.

This looks like a great first step, thanks @fnRaihanKibria!  I'm CC'ing @niklasharrysson for his expertise with this code, and we can discuss next steps.

@fnRaihanKibria Have you looked into the new errors in our test suite that occur with these proposed changes?  Independent of future review from the MaterialX team, these errors will be important to resolve!
Here's a snippet of text from the errors that we're seeing with these changes:
-------------------------------------------------------------------------------
GenReference: OSL Reference
-------------------------------------------------------------------------------
D:\a\MaterialX\MaterialX\source\MaterialXTest\MaterialXRenderOsl\GenReference.cpp(23)
...............................................................................

D:\a\MaterialX\MaterialX\source\MaterialXTest\MaterialXRenderOsl\GenReference.cpp(137): FAILED:
  CHECK( failedGeneration == false )
with expansion:
  true == false

You should be able to debug this issue by running the MaterialXTest project in a Debug build, where you can place breakpoints or print statements to learn more about what's happening.

I get the same test failure locally on Windows. Log file contents show one of the new exceptions being thrown for the "GenReference: OSL Reference" test:
Skip generating reference for'surfacematerial'
Skip generating reference for'volumematerial'
Error generating OSL reference for 'constant_float' :
Tried to create looping connection on node constant_float from output: constant_float_value to input: constant_float_out
Error generating OSL reference for 'constant_color3' :
Tried to create looping connection on node constant_color3 from output: constant_color3_value to input: constant_color3_out
Error generating OSL reference for 'constant_color4' :
Tried to create looping connection on node constant_color4 from output: constant_color4_value to input: constant_color4_out
Error generating OSL reference for 'constant_vector2' :
Tried to create looping connection on node constant_vector2 from output: constant_vector2_value to input: constant_vector2_out
Error generating OSL reference for 'constant_vector3' :
Tried to create looping connection on node constant_vector3 from output: constant_vector3_value to input: constant_vector3_out
Error generating OSL reference for 'constant_vector4' :
Tried to create looping connection on node constant_vector4 from output: constant_vector4_value to input: constant_vector4_out
Error generating OSL reference for 'constant_boolean' :
Tried to create looping connection on node constant_boolean from output: constant_boolean_value to input: constant_boolean_out
Error generating OSL reference for 'constant_integer' :
Tried to create looping connection on node constant_integer from output: constant_integer_value to input: constant_integer_out
Error generating OSL reference for 'constant_matrix33' :
Tried to create looping connection on node constant_matrix33 from output: constant_matrix33_value to input: constant_matrix33_out
Error generating OSL reference for 'constant_matrix44' :
Tried to create looping connection on node constant_matrix44 from output: constant_matrix44_value to input: constant_matrix44_out
Error generating OSL reference for 'constant_string' :
Tried to create looping connection on node constant_string from output: constant_string_value to input: constant_string_out
Skip generating reference for'constant_filename'
Skip generating reference for unimplemented node 'curveadjust_float'
Skip generating reference for unimplemented node 'curveadjust_color3'
Skip generating reference for unimplemented node 'curveadjust_color4'
Skip generating reference for unimplemented node 'curveadjust_vector2'
Skip generating reference for unimplemented node 'curveadjust_vector3'
Skip generating reference for unimplemented node 'curveadjust_vector4'
Skip generating reference for unimplemented node 'mix_displacementshader'
Skip generating reference for unimplemented node 'mix_volumeshader'
Skip generating reference for'dot_filename'

Let me check if I can find out why.

The problem was that the loop check was too loose. The failing unit test had a situation where a graph node's input sockets where connected to its own output sockets (caused by a bypass during optimization), which led to the exception because it's technically the same node. I added a check to ignore such cases for graph nodes, which fixes the test. The bug in this ticket still occurs and still throws because it runs into the (now stricter) exception case.

Thanks for addressing those issues, @fnRaihanKibria, and I'd be interested in thoughts from @niklasharrysson on the correctness of this pull request.

Thank you for finding this @fnRaihanKibria, and for your proposed fix.
I will investigate this further, and see if I can find the cause for the loop being created.

The cause of this issue is a limitation in the support for cascading nodegraphs.
When there are multiple nodegraphs connected to each other these may be flattened into a single large ShaderGraph for codegen. But there are no handling of the case where nodes internal to these graphs may share the same name. So when connections are constructed and nodes are referenced by name this breaks down..
A typical case is copy/paste of a graph as in #1932, where all nodes in the copy share names with the original.
So the symptom is that a cycle is found in the graph, but it's actually caused by nodes not being uniquely named.
I think the best fix for this is to stop flattening nodegraphs, and preserving the nodegraph hierarchies, when creating the codegen ShaderGraph. There are other benefits of this as well, for example an issue we've discussed before with limiting the number of uniforms that are generated for a shader (if nodegraphs are not flattened it's much easier to keep internal parameters private).
I will take a closer look at getting this work started as soon as possible.


Scheduler issues with RxSwift

Using Moya 8.0.1 and RxSwift 3.1.0
I'm trying to make sure that Moya requests run on a background thread, because currently my UI gets locked up while doing requests. I've been trying to use a ConcurrentDispatchQueueScheduler, but invariably the Moya requests switch back to the main thread. Example:
MyAPI.instance.getIndex()
    .subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
    .observeOn(MainScheduler.asyncInstance)
    .flatMap { index in /* Do some UI stuff here */ }
    .subscribe(onNext: { uiResults in /* Do something with UI results */ })

My getIndex function is just a simple
func getIndex() {
    return self.provider.request(.getIndex)
}

Putting a breakpoint inside the Observable.create part of the RxMoyaProvider.request function always shows com.apple.main-thread. This is true even if I remove the observeOn from above. Also any subsequent maps or flatMaps all run on com.apple.main-thread. Normally I would expect these to run on the ConcurrentDispatchQueueScheduler. This happens if I am not using Moya.
Any way to not lock up my UI while using Moya?

So happy you've made this issue! This is a feature we were looking to implement for RxMoya. Here's the pull request: https://github.com/Moya/Moya/pull/762
Let me know if you have any other questions, or if you're interested in implementing the functionality we're missing 😄

Let's continue discussion for this on #762, closing this for now


Editor Layer 1 is listed as a bool when it is an integer

In master/docs/resources/client/level-components/level-object.md, Editor Layer 1 is listed as a bool when it is an integer.

Good catch, will fix later

fixed in https://github.com/gd-programming/gddocs/pull/78


Add semicolons

To allow certain minfiers to work properly.

This isn't going to work. These are dist files generated from source. We'll need to either get a patch accepted upstream in json-stringify-safe (unlikely), or we need to modify the build process to semicolon-ify our dist files going forward.

I figured as much.
the crux of the issue really is when:
var thisPos = stack.indexOf(this)
~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
turns into: var thisPos = stack.indexOf(this)~thisPos ?
stack.splice(thisPos + 1) : stack.push(this);
I suspect that there could be a corner case regarding the tilde character
in the compressor I am using. It is mashing them together.
Thanks for listening :)
On Thu, Dec 15, 2016 at 4:42 PM, Ben Vinegar<EMAIL_ADDRESS>wrote:

This isn't going to work. These are dist files generated from source.
We'll need to either get a patch accepted upstream in json-stringify-safe
(unlikely), or we need to modify the build process to semicolon-ify our
dist files going forward.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/getsentry/raven-js/pull/804#issuecomment-267487284,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AALjUY-w577qigiQ4wk6duZvAh91ED_Jks5rId6FgaJpZM4LOufs
.

--
Christian Jensen
2311 Watkiss Way
Unit #1
Victoria, BC V9B 6J6
+1<PHONE_NUMBER>
<EMAIL_ADDRESS>

This problem still exist when using raven in Rails 5 with the uglifier gem. If you run into this, use the minified version in the pipeline.

@mreq it will be fixed with the next release, as it's already fixed in the sources https://github.com/getsentry/raven-js/blob/master/vendor/json-stringify-safe/stringify.js#L14-L15


Implement path normalization in port-default

Updated the default port so that it now provides path normalization for
common platforms.
Co-authored-by: Marko Fabo<EMAIL_ADDRESS>JerryScript-DCO-1.0-Signed-off-by: Marko Fabo<EMAIL_ADDRESS>JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai<EMAIL_ADDRESS>

The patch seems OK for me, but could be please add some test cases to test the new behavior?

As far as I can tell it's not possible to test how many times a source code was evaluated with the testing infrastructure we currently have in place.
Even if it would be possible, this is entirely port specific, so I'd rather not force an expected behavior.


use Credential.forHost to find registry credentials

This handles FileCredentials as well as DirectCredentials

thanks for your contribution!


Added mobile detection

Sometimes, one just need to know if a user is on mobile or not

Coverage increased (+2.08%) to 83.333% when pulling 2e07b79689c65459febebf5c788138755d607a28 on djunehor:master into 2a975d84eacfc712e2c9252e6011272d15b32e4d on unicodeveloper:master.