feat: Add support for network_type argument

Description

Add support for the network_type argument.
Motivation and Context

I've got RDS clusters in production that need to be deployed in dual-stack mode, and this module didn't support that configuration yet. Instead of maintaining a private fork, I will submit a patch.
Breaking Changes

The required AWS provider is bumped from 4.6 to 4.28. This version is where the network_type argument became available.
How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[ ] I have tested and validated these changes using one or more of the provided examples/* projects

[ ] I have executed pre-commit run -a on my pull request

Looks good - we should add the same to the aws_rds_cluster_instance resource as well

@bryantbiggs terraform validate will fail if you add network type to both the cluster resource and the instance resources.  The instance inherits the network_type from the cluster, it would seem.
│ Error: Value for unconfigurable attribute
│
│   with aws_rds_cluster_instance.this,
│   on main.tf line 189, in resource "aws_rds_cluster_instance" "this":
│  189:   network_type                          = var.network_type
│
│ Can't configure a value for "network_type": its value will be decided
│ automatically based on the result of applying this configuration.

aws_rds_cluster_instance does not have network_type among arguments but only in attributes. The PR looks good.

This PR is included in version 7.5.0 :tada:


Add a test for reading a repeated_no_annotation Parquet file

This PR adds a test for an issue in cudf where it's erroneously reading a Column resulting in a failure.
This should be enabled once cudf issue is fixed
fixes #8708

Closed because #8646 already covers this


Fix erroneous scenarios in scheduler

Description:
When there are errors occurred from the generated code, scheduler catches those exceptions and notify error to the workers. However, that was causing the execution flow to go in a wrong path, and causes unexpected issues at runtime.
Steps to reproduce:
Revert the commit: https://github.com/ballerina-platform/ballerina-lang/pull/15592/commits/c82480c3c0a4b2992765d0b9809fd756752a0966
Run the below service:
import ballerina/http;

http:Client clientEP = new("http://localhost:9092/hello");

listener http:Listener mockEP = new(9090);

service passthrough on mockEP {

    @http:ResourceConfig {
        path: "/"
    }
    resource function passthrough(http:Caller caller, http:Request req) {
        var clientResponse = clientEP->forward("/", req);
        if (clientResponse is http:Response) {
            checkpanic caller->respond(clientResponse);
        } else {
            http:Response res = new;
            res.statusCode = 500;
            res.setPayload("Error");
            checkpanic caller->respond(res);
        }
    }
}

service hello on new http:Listener(9092) {

    @http:ResourceConfig {
        methods: ["POST", "PUT", "GET"],
        path: "/"
    }
    resource function helloResource(http:Caller caller, http:Request req) {
        checkpanic caller->respond("Hello World!");
    }
}

Not reproducible.


CI for Node

App
✕ Contains the compiled JavaScript (5 ms)
Game
Game
✕ Initializes with two players (2 ms)
✓ Initializes with an empty board
✕ Starts the game with a random player (1 ms)
turn
✓ Inserts an 'X' into the top center (1 ms)
✓ Inserts an 'X' into the top left
nextPlayer
✕ Sets the current player to be whoever it is not (1 ms)
hasWinner
✓ Wins if any row is filled (1 ms)
✓ Wins if any column is filled (1 ms)
✓ Wins if down-left diagonal is filled
✓ Wins if up-right diagonal is filled


samples: adding pr tracker

Pull Request Title
Adding PR Tracker
Description
Adding the sample Github PR tracker in hack/samples/index.json

Please resolve the conflict

Hi @idagelic, I have resolved the conflicts


Update URLs for Demo in the integration repo

Acceptance criteria

[ ] show the demo URLs in introduction in the README.md
[ ] URLs for staging are also still in README.md

done by @sadiabbasi


implement camera buttons in website

Use Case
Allow users to switch between pan and rotate, and use key board keys to control the camera in addition to the buttons.
Solution

camera buttons are on bottom right of viewer panel oriented vertically
text is only in tooltips, not next to camera buttons
mockup can be found here https://zpl.io/V0oLjdE
hotkeys (moved from viewer ticket since it's better to implement these in website)
(SHIFT/CMD modifier keys are already implemented)

**tooltips:

rotate: "Rotate mode (SHIFT or CMD)"
pan: "Pan mode (SHIFT or CMD)"
zoom in: "Zoom in (↑)"
zoom out: "Zoom out (↓)"
reset: "Reset camera (R)"
the first time a user toggles focus without an agent selected, warn them "Select a target agent to focus the camera."
the rotate/pan and focus buttons' color state updates to match the current state, even if it is toggled or overridden with a key

Alternatives
I think it would be nice to have hotkeys for the rotate and pan modes, I'll implement this as is, but here is my alternative proposal ( I know we are going to want to user test, so this is just for the future if the current system seems confusing):

rotate: "Rotate camera (Shift & click or R)"
pan: "Pan camera (Shift & click or P)"
zoom in: "Zoom in (↑)"
zoom out: "Zoom out (↓)"
reset: "Reset camera(H)" (since we're going to use the home icon for this instead of the arrows)

One other issue I thought of while implementing.... I think the tooltips should have lowercase letters. I think it would be reasonable for someone to try hitting "shift + r" for example to reset the camera. Right now, that will change the camera mode, but not reset the view at all. We could talk about whether that should instead reset the camera. IE the rule is you hit "shit+hotkey" ignore shift and do the hotkey action.

@blairlyons: One other issue I thought of while implementing.... I think the tooltips should have lowercase letters. As is, I think it would be reasonable for someone to try hitting "shift + r" for example to reset the camera. Right now, that will change the camera mode, but not reset the view at all. We could talk about whether that should instead reset the camera. IE the rule is you hit "shit+hotkey" ignore shift and do the hotkey action.

I was using uppercase because it's for keys, they have the uppercase letter printed on them. I think that's usually what I've seen? If I saw "R" I'd only press R. But maybe a thing for user testing?

Takeaways from dev meeting this morning:

make rotate/pan tooltips conditional on state of toggle group.
If rotate is enabled, tooltips are:

rotate: "Rotate"
pan: "Pan (hold SHIFT)"
If pan is enabled:
rotate: "Rotate (hold SHIFT)"
pan: "Pan"

change reset tooltip to "Home view (H)" and use H as hotkey
don't add focus notification about selection for now


Remove IsExternalInit

Remove IsExternalInit since we target at net6.0 now, there's no need to use it

Thank you 🙏🏼

My pleasure ❤


Inheritance Problems

I'm in learning stage so I'd setup a test case where:

IResource - Interface for a resource
Id : Guid
Resource - Base type implementing the IResource interface
ZoneResource - Base type for zone resources

Zone : int
Kiln

Kiln - Derives from Resource
CFan - Derives from ZoneResource

I've started out doing a interface for the ZoneResource since both ZoneResource and Resource are IResource (but that did not work at all).
Now with "flatternd" inheritance / implementation chain I explicitly setup subclassing (tried to just add IResource when all resources where implementing that but it just created a table for each resource):
  For<Resource>()
    .AddSubclass<Ce>()
    .AddSubclass<DigitalInputPort>()
    .AddSubclass<Kiln>()
    .AddSubclass<Sawmill>();

  For<ZoneResource>().AddSubclass<CFan>();

I add a set of resources and do a initial query - session.Query().Where(x => x.Name = "CFAN1").ToList(); and it works perfectly.
In another class I do:
  var kiln = Kilns().First();
  var cf = _session.Query<CFan>().Where(c => c.Kiln == kiln.Id);
  if (_config.KilnZone != -1)
    return cf.Where(c => c.Zone == _config.KilnZone).ToList();

  return cf.ToList();

I see in the log that it creates a new table 'mt_doc_cfan' and queries against that instead of table 'mt_doc_zoneresource' as earlier.
What I'm I doing wrong or is this a bug?
Is the intention that it shall be possible to do a For and then it shall use all subtypes even if the inheritance chain is 3 or more on the same table?
Cheers,
Mario

@mariotoffia I'm thinking it's a bug -- unless you were using a different DocumentStore object in the second class. It should have created the table for the parent type and used that throughout. All the tests for that behavior are passing in CI, so if it is broken, my theory is that it's either losing the configuration somehow or fetching the configuration incorrectly somewhere downstream.

Hi,
I've have written more proper unittests (I can send you the project if you want) to isolate problems. The only thing I've found is that either the base type is queryable or the most concrete. The derived classes in between do not work.
Is this possible to fix? Do you want my test suite?
Cheers,
Mario

@mariotoffia It'll get fixed a lot faster with your test suite;) Yes, please, and I'm sure we can fix it.

Hi,
I've created a temp repo and uploaded the Mario.Tests.zip file of the ms-test project...
It is using a set of nugget packages that you need to restore. I've done a simple nugget package to fire up docker containers and tear them down for each test (or for a whole testclass) that I'm using in the test. If you wish to test differently just copy'n'paste those test to your own solution.
Hovever, I do not use nugget for Martens (I've cloned it and placed in the Marten.sln so it is a direct project reference to Marten (in master branch). I'm using  a postgres 9.5 docker image for my tests - "clkao/postgres-plv8:latest".
The tests I refer to is in the Inheritance/** namespace

InheritanceQueryDirectConfigTests
InheritanceQueryMartenRegistryConfigTests
LightWeightSessionInheritanceQueryMartenRegistryConfigTests
All three emit same behaviour.

Please let me know if there's something that you need me to do!
Cheers,
Mario :)

@mariotoffia Thanks Mario. Gimme a couple days to get to it, but I will sometime early next week.

@jeremydmiller unless someone beats you to it ;)

Ok, the first issue I discovered is with two levels down inheritance, ie A -> B -> C any instances of C saved by marten will not be actually created & persisted in the DB. Hopefully will get this sorted tomorrow/this weekend.

C still has to be explicitly mapped as "save as A", it doesn't infer anything

Ok,
First of all, sorry @jeremydmiller - it turns out that wasn't the issue, that was me being sloppy. The good news is that A->B->C actually works OOTB.
@mariotoffia I finally understood the issue you've raised; it's something we should probably discuss before implementing.
The issue is if you have A->B->C and you save an instance of C and you Query() you won't get the C you just saved as long as your schema is _.Schema.For().AddSubclass().AddSubclass()
The reason being Marten currently supports only singular inheritance/interface-implementation-relations. If you look at the row created in the db, it looks like this:
ID: "0fad5873-ba87-45b6-ab46-46fc76622d90";
DOC: "{"Id": "0fad5873-ba87-45b6-ab46-46fc76622d90", "Name": "KILN1", "Zones": [{"Zone": 1, "ZoneType": "climate"}], "Ordinal": 1, "CommonName": null}";
DOC TYPE: "kiln"
We will need to modify the way the doc type saving is done, maybe use an array type? @jeremydmiller - what say you?

Personally, I'm not 100% sure about adding such a feature. It does make complex inheritance relationships a possibility, which could be a code smell- don't know to what extent marten should be opinionated though.

In our case it's all about porting from (my, custom, anno -2003) document (xml) store to marten. And make use of these chains since to allow for more generic algorithms to be executed on base types and only add specialized for the specifics (if needed). It's a drying kiln process driver application along with PLC:s on the field. This configuration if both used for persistence and augmented into the OPC (PLC communication) resources.
@nieve Do the DOC_TYPE really need to be an array? Doesn't it just be the most concrete type stored e.g. in your example A->B->C DOC_TYPE: "C" and since schema do have A,B,C (and knows the inheritance chain?) if I Query could it not generate query "DOC_TYPE eq "C" || DOC_TYPE eq "B"?
Thus this will not inflict any performance while not using long inheritance chains - for those users and still allow e.g. my customer use-case and accept less performant queries in those cases?
Or I'm I missing something?
Cheers,
Mario

@nieve @mariotoffia I'm not wild about this, but it doesn't sound too crazy hard either. We'd need to have yet another type of "type forwarding" for the intermediate base classes. The only thing I'd question is whether we made this be an explicitly configured thing like the type hierarchy is today anyway, or try to infer it.

@jeremydmiller @mariotoffia I can take a look at it after we're done with the deleteWhere issue. Personally, I think it should be configurable. Users have to feel some pain to see that what they're doing might be too complicated. my 2p anyway.

Sorry for being a bit slow on this- have started work today, should have something working (though not explicitly configured for now) tomorrow.

Thank you guys for the much appreciated fix!! :)
Cheers,
Mario


pkg/analysis_server/test/integration/analysis/update_content_test times out on Windows

The test pkg/analysis_server/test/integration/analysis/update_content_test is timing out on Windows on the buildbots.  Skipping for now.

I believe that the problem is in the test framework, not the tests. If you disagree, please start an e-mail conversation with me.

I don't know if this is a problem in the test framework or not, but for completeness could you elaborate on what you think the problem is?

I believe that the test.py scripts had a timeout of 1 minute, and many analysis server tests are long-running.  We increased the timeout to 3 or 5 minutes, for this particular test suite, so the problem should be resolved.  The flaw was not in the framework, but in our assumptions about how people would be using it.  We assumed lots of small tests, in separate files. Some users want to put all tests in one large file.


Add organization label & logo to the content

Motivation

To make use of our organizations we want to mark content that is maintained by one.
Proposed Solution

For the App it would be the easiest if we add some HTML label directly in our content. The proposed solution from our UI/UX team can be seen in the following screenshot:

The app already has a footer with the last changed date. In the team sync we decided that it is probably nicer to simply add the path to the image as an API attribute which the app can use.

Where can we test this/how can we add this to a page/the api?


Output filename broken. Cannot predict the output filename

Running the command:
youtube-dl -o 77d8f26f-3685-4c87-898f-2f4d98d3532b --get-filename -- 70wDodLb-m8
Give the following output: 77d8f26f-3685-4c87-898f-2f4d98d3532b which is of course correct, since that is the output filename I gave it. And this often works fine.
However, sometimes the following happens:
$ youtube-dl -o 77d8f26f-3685-4c87-898f-2f4d98d3532b -- 70wDodLb-m8
[youtube] 70wDodLb-m8: Downloading webpage
[youtube] 70wDodLb-m8: Downloading video info webpage
[youtube] 70wDodLb-m8: Extracting video information
[youtube] 70wDodLb-m8: Downloading DASH manifest
[youtube] 70wDodLb-m8: Downloading DASH manifest
[download] Destination: 77d8f26f-3685-4c87-898f-2f4d98d3532b.f248
[download] 100% of 152.24MiB in 00:43
[download] Destination: 77d8f26f-3685-4c87-898f-2f4d98d3532b.f171
[download] 100% of 7.41MiB in 00:01
[ffmpeg] Merging formats into "77d8f26f-3685-4c87-898f-2f4d98d3532b.webm"
Deleting original file 77d8f26f-3685-4c87-898f-2f4d98d3532b.f248 (pass -k to keep)
Deleting original file 77d8f26f-3685-4c87-898f-2f4d98d3532b.f171 (pass -k to keep)

So the resulting filename is the argument passed to -o with a ".webm" attached. Sometimes this appears to result in a ".mkv" attached as well.
I feel like this behavior is in error, and at the very least should come back with the correct filename when "--get-filename" is used.
This is currently breaking a software chain as the resulting file cannot be found.

Duplicate of #5710.

Hey @dstftw, I feel this is not a duplicate because that issue has to do with the %(ext)s template not being correct, he expects %(ext)s to be filled with .webm and it gets .mkv instead.
My issue is that I have no extension in the output filename, so I feel regardless of what internal merging needs to happen, there should be no extension on the output.
I think the final stage of saving the file should respect the -o argument, especially if no extension template is given.
Can this issue be re-opened and marked as different than that issue?

Use --exec ....


how do i include custom dictionary in petrarch(2)?

Hi guys, is it possible to include a customized event type dictionary into Petrarch(2)? I understand that Petrarch(2) is CAMEO based and I have some organic definitions derived from other sources. Any suggestions? Thanks!

Phrase dictionaries are located in the data/dictionaries. PETRARCH-2 is, as you noted, fairly tightly integrated into CAMEO in the sense that various verb combinations can generate new events, and certain types of events generate secondary events. Most of this is documented in the Petrarch2.pdf file, and the translation from those internal representations to CAMEO is in the convert_code() function in utilities.py -- it's pretty well documented. The various other transformations are scattered through PETRtree.py -- again, with pretty decent documentation -- and also there are about ten general transformations are the end of the file CAMEO.2.0.txt


Cancel of Edit Connection points dialog cause existed connection points eliminated

Steps to Reproduce

Go to Macro mode
Load from file using Add to Canvas way: Cancel of Edit Connection points dialog cause existed connection points eliminated.zip

Open Edit Connection points dialog

Change connections to R4-R4

Press Cancel button

Actual behavior
All connection points become available (i.e. unoccupied)

Expected behavior
No changes happen.

Versions

Ketcher Version 2.23.0-rc.3 Build at 2024-07-31; 05:31:01
Indigo Toolkit Version 1.23.0-dev.3.2-gb9ac1d93-wasm32-wasm-clang-12.0.0
Windows 10 Pro
Chrome Version 127.0.6533.89 (Official Build) (64-bit)

Issues found while testing https://github.com/epam/ketcher/issues/4905

Verified.

Versions

Ketcher Version 2.25.0-rc.2 Build at 2024-09-14; 10:47:47
Indigo Toolkit Version 1.24.0-rc.2.0-g5f2751d70-wasm32-wasm-clang-19.0.0
Chrome Version 128.0.6613.138 (Official Build) (64-bit)
Win10


Non scrollable resizable pane

This PR add new constructor RezizablePane.noScrollBar to  ResizablePane class.
It allow user to disable the internal MacosScrollbar witch is in by default in the ResizablePaneWidget
close #413
Pre-launch Checklist

[x] I have incremented the package version as appropriate and updated CHANGELOG.md with my changes
[x] I have added/updated relevant documentation
[x] I have run "optimize/organize imports" on all changed files
[x] I have addressed all analyzer warnings as best I could

Hi @GroovinChip can you review this PR ? Thanks.

I'm taking this off the 2.0 milestone.

Hey @GroovinChip, hope you're fine. I'm really sorry that I didn't give any sign of life. I was a little busy. I will update this PR ASAP.

I actually don't know how to resolve this. It's from dart code metrics check.

I actually don't know how to resolve this. It's from dart code metrics check.

don't worry about this, I'll deal with it

Hey @GroovinChip, hope you're fine. I'm really sorry that I didn't give any sign of life. I was a little busy. I will update this PR ASAP.

No worries mate, I know how it is :)

@stMerlHin Looks good but I think you need to run pub get, I don't see updated lock files

Sure, I will do so.


History push/replace doesn't clear search and hash as expected

Calling history.push or history.replace with a path that doesn't contain a search or a hash doesn't clear any existing search or hash from the location and carries them forward to the new location. This can be easily seen with the following simple test:
const history = createMemoryHistory({
    initialEntries: ["/one?foo=bar#abcdef"],
});
history.push("/test");
expect(history.location).toMatchObject({
    pathname: "/test",
    search: "",
    hash: "",
    state: null,
    key: expect.any(String),
});

The only way to circumvent this is to explicitly pass a PartialPath object with empty search and hash properties:
history.push({pathname: "/test", search: "", hash: ""});

This happens due to the way getNextLocation appends the specified to location to the current location:
https://github.com/ReactTraining/history/blob/28c89f4091ae9e1b0001341ea60c629674e83627/packages/history/index.ts#L479-L486
This is a regression in v5 that didn't occur with v4.

Duplicate of #814 / #808?

Duplicate of #814 / #808?

Looks like it is, but I'll leave it up here anyway in case someone pays attention.

same problem


The Preview button does not indicate if it is a submenu and does not expose its expanded or collapsed state to the screen reader

Description
The Preview button is not announced as a dropdown list/menu by the screen reader.
There is no way for a screen reader user to distinguish between the parent "preview" button and the "preview" button appearing in the submenu.
The user cannot tell if the preview menu is currently expanded or collapsed.
The user cannot tell how many items are present in the preview menu as they go down the list. There is no way to tell when the submenu ends and when the list of parent menu items is continued.
To Reproduce
Steps to reproduce the behavior (using screen reader - NVDA):

Open the URL https://main--franklinsidekickrepo--puja-iaccessible.hlx.page/
Press Alt key to go to the chrome menu and press tab to go to the sidekick extension
Press enter on the sidekick extension
Press tab to go to the preview button and press enter to expand
Notice output of screen reader

Expected behavior
The role of the preview button should be either "menu" or "dropdown" because it brings up a menu of other buttons. The state of the preview menu should indicate if the menu is currently expanded or collapsed. Once expanded, the submenu items should be a part of a list so that a screen reader user can determine how many menu items are present inside the "preview" menu. In its current state, there is no distinction for a screen reader user between the top-level preview button and the preview button inside the submenu and the user cannot tell if the menu is currently expanded or collapsed.
The screen reader should announce the following

preview as dropdown menu/list
the state of the menu should also be announced whether "collapsed" or "expanded"
The submenu items should be in a "list" element.

Screenshots
Attached is the screenshot.
Additional context
https://www.w3.org/TR/WCAG21/#name-role-value
Why it matters
Providing the appropriate role and state to various controls allows screen reader and other assistive technology users to understand and operate those controls appropriately.

@puja-iaccessible is it sufficient to add aria-expanded attributes (true or false) to the dropdowns?

Duplicate of #254


GoogleGenerativeAI failed

Which API Provider are you using?
Google Gemini
Which Model are you using?
gemini-1.5-flash-002
What happened?
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-002:generateContent: fetch failed
Steps to reproduce
1.Use Google Gemini API
Relevant API REQUEST output
No response
Additional context
No response

I have a similar problem with a more descriptive error message:
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-002:generateContent: [400 Bad Request] Unable to submit request because it has an empty text parameter. Add a value to the parameter and try again. Learn more: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/gemini
At the same time gemini api works with curl
curl -H 'Content-Type: application/json' -d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-002:generateContent?key=<same api key as set in claude dev settings>'
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "AI doesn't work in a s
       ...

! [image] (https://github.com/user-attachments/assets/1502b624-ca71-4415-b3cb-9854c02e9298)
I've tried the latest 2.0 version and I'm still getting the same issue

For me it works fine with Gemini now, it doesn't work on all listed models, but it works ie for gemini-1.5-pro-exp-0827 and some flash models.

This was an issue with tool calling on google's end, their api doesnt seem to support it well. v2.0 of the extension released yesterday should fix the issue as it no longer relies on the tool calling API. Please give it a try and let me know if it works!

I have a similar problem with a more descriptive error message: [GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-002:generateContent: [400 Bad Request] Unable to submit request because it has an empty text parameter. Add a value to the parameter and try again. Learn more: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/gemini

Had this same issue. What did you do to fix it? I saw someone mention a issue with tool calling.


Update iap_verifier_rpc.lua

Updated function google_verify_payment to take the is_subscription value from the payload instead of being explicitly set to failse.

Thanks @grant-sessiongames 👍


Strange behavior, misunderstanding. Creates two processes if coroutine from another module?

aiomultiprocess starts more the one process if the coroutine is not in the same file. Below a short example.
import asyncio
from aiomultiprocess import Process, Worker
import aiomultiprocess
import os

aiomultiprocess.set_start_method('fork')

async def do_sleep():
    while True:
        print(os.getpid())
        await asyncio.sleep(1)

async def create_process():
    p = Process(target=do_sleep)
    p.start()
    return p

async def main():
    p = await create_process()

if __name__ == "__main__":
    asyncio.run(main())

If i run this and check the processes i get an expected result. Main process and sub process.
$ ps auxf
159822  .... \_ python process_in_file.py
159828  ............   \_ python process_in_file.py

Now i just outsource the coroutine to other file. The code still the same
process_from_other_module_start.py
import os
import asyncio
from aiomultiprocess import Process, Worker
import aiomultiprocess
import process_from_other_module_import

aiomultiprocess.set_start_method('fork')

async def create_process():
    p = Process(target=process_from_other_module_import.do_sleep)
    return await p

async def main():
    p = await create_process()

if __name__ == "__main__":
    asyncio.run(main())

process_from_other_module_import.py
import asyncio
import os

async def do_sleep():
    while True:
        print(os.getpid())
        await asyncio.sleep(1

$ ps auxf
159980  ...   \_ python process_from_other_module_start.py
159981  ......       \_ python process_from_other_module_start.py
159986 ............. \_ python process_from_other_module_start.py

System shows me two sub-processes but i started just one...? Is this a Bug? Can somebody explain it?

OS: linux
Python version: python3.8 and 3.7
aiomultiprocess version: aiomultiprocess==0.7.0
Can you repro on master?
Can you repro in a clean virtualenv?

Here i pushed the files to github
https://github.com/bouillon/aiomultiprocess-and-aiopipe-examples

Ok seems it starts the with manager process per default. But i don't need them...
        self.unit = Unit(
            target=target or not_implemented,
            args=args or (),
            kwargs=kwargs or {},
            namespace=None, #get_manager().Namespace(),
            initializer=initializer,
            initargs=initargs,
        )

I commented this line and see the expected 2 procs
$ ps auxf
159980  ...   \_ python process_from_other_module_start.py
159981  ......       \_ python process_from_other_module_start.py

Is there any way to start without manager process and without modified the source?

Inherit from the Process class may be a better way.
from aiomultiprocess import Process

class MyProcess(Process):
    def __init__(
        self,
        group: None = None,
        target: Callable = None,
        name: str = None,
        args: Sequence[Any] = None,
        kwargs: Dict[str, Any] = None,
        *,
        daemon: bool = None,
        initializer: Optional[Callable] = None,
        initargs: Sequence[Any] = (),
        process_target: Optional[Callable] = None,
    ) -> None:
        if target is not None and not asyncio.iscoroutinefunction(target):
            raise ValueError(f"target must be coroutine function")

        if initializer is not None and asyncio.iscoroutinefunction(initializer):
            raise ValueError(f"initializer must be synchronous function")

        self.unit = Unit(
            target=target or not_implemented,
            args=args or (),
            kwargs=kwargs or {},
            namespace=None,
            initializer=initializer,
            initargs=initargs,
        )
        self.aio_process = context.Process(
            group=group,
            target=process_target or Process.run_async,
            args=(self.unit,),
            name=name,
            daemon=daemon,
        )

It would probably be easier to just monkeypatch the get_manager() function, rather than needing to subclass everything:
import aiomultiprocess

aiomultiprocess.get_manager = lambda: None

That said, I don't think removing the extra process is worth the effort. It shouldn't be using a meaningful amount of memory or CPU if you're not using the manager to share objects between processes, and it will also break some of the functionality for things like worker processes.


CMake create release package, add GitHub Action CI

This will create an complete installer package for most platforms. Thereafter with Findlibuv.cmake in there directory and something like the following in there CMakeLists.txt.
find_package(libuv QUIET)
if(NOT libuv_FOUND)
    FetchContent_Declare(libuv
        URL https://github.com/libuv/libuv/archive/refs/tags/v1.48.0.zip
        URL_MD5 67d0e50ac6e95de12b09b17ff8baed0f
    )
    FetchContent_MakeAvailable(libuv)
endif()

I think https://github.com/libuv/libuv/pull/3194 should just be closed, it just doesn't actually automate any process, which was my initial use case, grab binary without me doing any building.

I had a quick look. My understanding was the initial idea here was to create an easier distribution mechanism for Windows, wasn't it? There are debs and rpms there now, which I'm not sure we want to distribute. Was this discussed somewhere?


Filter http exceptions

It would be nice to exclude certain exception types. Is there a way to do this?

the sentryinterceptor will accept filter options, please refer to the options param: it expects: SentryInterceptorOptions.. thanks

As there is no documentation around it:
what does the type: any do on the SentryInterceptorOptionsFilter?
right now I would assume that this would work like:
{
  filters: [
    {
      filter: (e) => e.statusCode === 404
    }
  ]
}

but then - as asked - what does the type do?

ok, based on what I saw in the code it should be usable like this:
{
  filters: [
    {
      type: HttpException,
      filter: (e) => e.statusCode === 404 // this is then optional
    }
  ]
}


PowerShell dependencies use non-portable RIDs which causes exceptions when using PowerShell.SDK in a .net 8 project

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
I am trying to run some powershell from C# console app written in .net 8.
When building the project I get this warning:
1>C:\Program Files\dotnet\sdk\8.0.100-rc.2.23502.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(284,5): warning NETSDK1206: Found version-specific or distribution-specific runtime identifier(s): win10-x64, win10-x86, win7-x64, win7-x86, win81-x64, win81-x86, win8-x64, win8-x86. Affected libraries: Microsoft.Management.Infrastructure.Runtime.Win. In .NET 8.0 and higher, assets for version-specific and distribution-specific runtime identifiers will not be found by default. See https://aka.ms/dotnet/rid-usage for details.

When executing this code:
var rs = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
or this code:
var ps = System.Management.Automation.PowerShell.Create();
I get this error:
Exception thrown: 'System.IO.FileNotFoundException' in System.Private.CoreLib.dll
An exception of type 'System.IO.FileNotFoundException' occurred in System.Private.CoreLib.dll but was not handled in user code
Could not load file or assembly 'Microsoft.Management.Infrastructure, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.

Stack trace
at System.Reflection.RuntimeAssembly.GetExportedTypes()
   at System.Management.Automation.Runspaces.PSSnapInHelpers.GetAssemblyTypes(Assembly assembly, String name)
   at System.Management.Automation.Runspaces.PSSnapInHelpers.AnalyzeModuleAssemblyWithReflection(Assembly assembly, String name, PSSnapInInfo psSnapInInfo, PSModuleInfo moduleInfo, String helpFile, Dictionary`2& cmdlets, Dictionary`2& aliases, Dictionary`2& providers)
   at System.Management.Automation.Runspaces.PSSnapInHelpers.AnalyzePSSnapInAssembly(Assembly assembly, String name, PSSnapInInfo psSnapInInfo, PSModuleInfo moduleInfo, Dictionary`2& cmdlets, Dictionary`2& aliases, Dictionary`2& providers, String& helpFile)
   at System.Management.Automation.Runspaces.InitialSessionState.ImportPSSnapIn(PSSnapInInfo psSnapInInfo, PSSnapInException& warning)
   at System.Management.Automation.Runspaces.InitialSessionState.CreateDefault()
   at System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(PSHost host)
   at System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace()

I read this article: https://learn.microsoft.com/en-us/dotnet/core/tools/sdk-errors/netsdk1206
And I can fix the above issue by adding this XML to csproj of the executing project:
<ItemGroup>
  <RuntimeHostConfigurationOption Include="System.Runtime.Loader.UseRidGraph" Value="true" />
</ItemGroup>

I think the PowerShell.SDK should move to only portable RIDs, otherwise for .net 8 (and newer) all projects will require the UseRidGraph workaround to run PowerShell from C#. As explained in the article: Note that the old RID graph is no longer updated and exists only as a backwards compatibility option.
Expected behavior
When running PowerShell within a .net 8 project I expect the runtime to resolve `Microsoft.Powershell.SDK` package dependencies correctly using only portable RIDs.

Actual behavior
As explained in https://learn.microsoft.com/en-us/dotnet/core/tools/sdk-errors/netsdk1206 .net 8 by default does not resolve dependencies which have only non-portable RIDs specified. I.e. one of PowerShell.SDK dependencies `Microsoft.Management.Infrastructure` has lots of RIDs specified, but all of them are OS-version specific (e.g. win10-x64), and none of them are portable (which would be e.g. win-x64).

Error details
No response
Environment data
OS: win10 and win11
.NET Version: 8.0.100-rc.2.23502.2 x64
VS2022 17.8 preview 4

Locally I have installed PowerShell 7
My .net project has installed `Microsoft.PowerShell.SDK 7.3.8` from nuget.

Visuals
No response

@andy250 I've added <UseRidGraph>true</UseRidGraph> and  win7-x64 into my csproj file but it didin't mitigate the issue. Any clue?

@andy250 I've added <UseRidGraph>true</UseRidGraph> and win7-x64 into my csproj file but it didin't mitigate the issue. Any clue?

@ALIENQuake This is my csproj which works for me:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
...
  </PropertyGroup>
  <ItemGroup>
    <RuntimeHostConfigurationOption Include="System.Runtime.Loader.UseRidGraph" Value="true" />
  </ItemGroup>
....
</Project>

Updating to 7.4.0-rc.1 resolved the issue for me.
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.4.0-rc.1" />

Seems like the ItemGroup is no longer required then.

The need to setting UseRidGraph=true is due to an intentional breaking change in .NET 8 -- Starting in .NET 8, the .NET SDK won't recognize version-specific RIDs by default, such as win7-x64, see https://learn.microsoft.com/dotnet/core/compatibility/sdk/8.0/rid-graph for details.
We fixed all PowerShell SDK packages to not use specific RIDs in 7.4.0-rc.1. Now that 7.4.0 is out, can you simply use the v7.4 PowerShell sdks when targeting .NET 8.

And if you want trimming, include this one in csproj file:
    <Target Name="Microsoft-Management-Infrastructure-IsTrimmable-False" BeforeTargets="PrepareForILLink">
        <ItemGroup>
            <ManagedAssemblyToLink Condition="'%(Filename)' == 'Microsoft.Management.Infrastructure'">
                <IsTrimmable>false</IsTrimmable>
            </ManagedAssemblyToLink>
        </ItemGroup>
    </Target>


This is all very frustrating. We are prevented from doing nice static analyses and nice optimizations by the worst imaginable behavior from the components we can't see into. It has led some people to start talking about "soundiness" as a reasonable compromise and an alternative to strictly conservative analyses. I have a lot of sympathy for that, and I think of it as a pragmatic stance. I include Incorrectness Logic in that stance as well. But I think the trade-off it makes (away from the pessimistic/conservative point) means that it can't be used for optimizations.
What I do think is possible is to optimistically compile the efficient code, and then call it under a "guard" that checks that $if still hasn't been locally shadowed. This is still pretty good, and it can be made reasonably fast. The guards can be made reasonably sparse, because there are big chunks of contiguous code where we do have total knowledge of no dynamic environment mutation. The idea of "guards" is not mine; it's how JIT compilation works when it does specialization of monomorphic code; the specialization is  a "gamble" in the sense that past experience may back it up, but the future may contain surprises. I also think this is what Shutt had in mind when he (occasionally) talked about an "optimizing interpreter".
So there is hope. It's just, it's not the wishful-thinking kind of hope, where we say "X is not common, let's ignore X". It's of the complicated kind, where we carefully insert guards that allow us to monitor our wishful assumption, and we stay ready to divert to a slower "Plan B" path when it's invalidated, which is hopefully very rare.
(Does the paper do it this way? I don't know, because I still haven't read it carefully enough. If it doesn't, it's either unsound, or not really capturing Kernel semantics.)

In my opinion, a lot of the "we can redefine everything" stems from Shutt attempting to make Kernel axiomatic--based around a small, well-understood set of primitives to construct everything and avoid having to provide various pieces of ad hoc "implementation assistance" that other academics would challenge on theoretical grounds. He was, after all, wading into an area that was more than a little contentious by academic standards.

Kernel is based on a small, well-understood set of primitives, yes. According to a previous comment in this issue thread, three. And of those three $define! is in an "optional module", because Shutt saw that it might be interesting to study a subset of Kernel where environment mutation is not allowed. (I back this up by agreeing that the loss of $define! would not mean the loss of any real expressivity in the language. Let me handwave that and say that things like recursion and first-class environments are pretty powerful; it's folklore that a global CPS transformation can simulate mutable state.)
For simplicity, let's keep $define! instead of simulating it the hard way. I think it's absolutely true that Shutt was aiming for a "small core" design. But I don't think Shutt was unaware of the redefine-$if consequence. I think he absolutely considered the design option to make $if "fixed" — more like a keyword than a shadowable identifier — and rejected it.
Meaning absolutely no disrespect to those who have passed before us, here's how I think that conversation would go. I'd ask whether name lookup in Kernel is "late-bound". Shutt would say yes, sure, because environments are first-class, and asking "what is myvar" is like sending a message ("at runtime") to the actor-like entity that is the current dynamic environment. I'd ask if that includes $if, and Shutt would say "yes, of course". I'd point out that this would preclude a lot of convenient up-front code optimizations that would assume that the $if in the code is the standard $if. Shutt would say I sound like one of those "preprocessor macros" people or static-types people, who wish for a world that is more orderly and less dynamic than it actually is. He would say there are a lot of very intelligent folks working on things like that, but he doesn't feel a need to add himself to their number, nor to cripple his language just to make their life easier by (say) adding a guarantee that $if (the identifier) always means $if (the built-in operative).
I never met Shutt in real life, but I've read a lot of his stuff at this point. My confidence that the conversation would go something like that is high.

If we are attempting to precompile/partial evaluate for speed, we need "implementation assistance" and that assumption is already out the window. I, personally, don't find the idea of "shadowing a builtin severely hampers your ability to compile/pre-evaluate" a very problematic restriction. Redefining builtins like "$if" would be shocking to most programmers, anyway.

You're either implementing Kernel the way it's specified, or you're not. If you make assumptions for your own convenience, but it means you deviate from the letter of the spec, then wouldn't it be easier to instead pick a language where those assumptions hold in the language specification? "Really late-bound everything" seems to be a vital and non-negotiable part of Kernel's feature set.

If you haven't seen it, there is a nice post by Graydon Hoare talking about Rust ("The Rust I Wanted Had No Future"):
https://graydon2.dreamwidth.org/307291.html
I especially like the comment about lambda and environment capture:

I often say (provocatively) that "I hate lambda", but lambda is actually (at least) two separate language features: one is a notation for anonymous function literals; another is equipping those anonymous function literals with environment capture. I don't really care either way about having such a literal syntax, but I really do dislike equipping it with environment capture and think it's a mistake, especially in a systems language with observable mutation.

It's funny, the high-end CS people keep dancing around the whole idea that the environment is a thing and it really needs to be reified properly.

If you haven't seen it, there is a nice post by Graydon Hoare talking about Rust ("The Rust I Wanted Had No Future"): https://graydon2.dreamwidth.org/307291.html

Interesting! I hadn't seen it. There's a HN discussion as well (for what it's worth).
I haven't completely digested the entire post, and I'll have to read it again more carefully. But it's easy to see that a lot of it is speculation and what-could-have-been thinking. Guess the truth is that language design and language development is contingent, path-dependent, and has a lot more choices than easy answers.

I especially like the comment about lambda and environment capture:

I often say (provocatively) that "I hate lambda", but lambda is actually (at least) two separate language features: one is a notation for anonymous function literals; another is equipping those anonymous function literals with environment capture. I don't really care either way about having such a literal syntax, but I really do dislike equipping it with environment capture and think it's a mistake, especially in a systems language with observable mutation.

It's funny, the high-end CS people keep dancing around the whole idea that the environment is a thing and it really needs to be reified properly.

It's part of the static/dynamic dichotomy, the eternal divide between Those Who Compile and Those Who Interpret.
If you're building a compiler, then the environment is something like a series of linked stack frames, and it's typically not visible. Some people from this camp even say that making it visible would be a huge security flaw, although others disagree.
If you're building an interpreter, then the environment is not strictly necessary — you could do everything "by substitution", and the environment just represents an obvious laziness-based optimization on that, to avoid traversing subtrees. So typically the environment is present; since the wall between interpreter and interpreted code is so thin and porous, it's much easier in this scenario to want to reify the environment and make it available to the program itself.
So, I dunno. I'm not sure about the phrasing "it [the environment] really needs to be reified properly". :smile: In a much earlier comment in this thread (over two years ago), I talk about the double-edged practice of first-classing things, including environments:

Kernel starts out by first-classing "special forms" (by turning them into operatives), which already totally hoses static analysis, but it can't stop there. The slogan is that "all manipulative entities should be first-class", and so it goes on to first-class environments, hosing static analysis again for emphasis.

I'm reminded of the phrase "what you lose on the swings, you gain on the roundabouts" (clearly coined by some amusement park mogul). In this case, the trade-off involved in reifying and first-classing environments is pretty clear: first-class environments are powerful and flexible in some objective, undeniable sense — but letting them loose like that also means that there's more "fog of war" statically, and less static analysis can be done. Since both flexibility and static guarantees are good things, it's not an obvious choice.
I have this idea of creating an object system in Kernel, a little bit like CLOS maybe. The objects themselves would be environments (for data and methods) wrapped in encapsulations (for access control). I still haven't done that; it would be nice to try. It's hard to say whether the exercise would make me more warm towards first-class environments, or less.

Kernel starts out by first-classing "special forms" (by turning them into operatives), which already totally hoses static analysis

Except that I'm not necessarily sure it does.
As I poke more at the ideas behind Kernel, one of the things you can do is say "Please evaluate this in the immutable ground environment."  Once you do that, things get a lot cleaner.
Yes, you can still do things that rip the ground out from under yourself, but you can also not do them.  If you start from the immutable ground environment, the only things not the same as ground are the things that you, yourself, changed.  If you only use and define applicatives, then things seem to be able to be compiled.
Of course, once you open up the can of worms with an operative, that all goes out the window.  But you don't have to use operatives, that is your choice.
I really wish Shutt had done an implementation of Kernel in something like C or Java.  There is some wonkiness around environments and their implications that really needs a solid, non-lisp implementation to really lock down the semantics.  With everything being Lisp-to-Lisp there's a bit too much hand waviness that you can get away with.
Shutt also puts a lot of emphasis on "$define!" to bootstrap everything which completely defeats any attempts at compilation/static analysis.  It's not clear that this is actually required--being able to bootstrap from far less powerful primitives would benefit the performance of the interpreter significantly.

As I poke more at the ideas behind Kernel, one of the things you can explicitly say is "Please evaluate this in the immutable ground environment."  Once you do that, things get a lot cleaner.
Yes, you can still do things that rip the ground out from under yourself, but you can also not do them.  If you start from the immutable ground environment, the only things not the same as ground are the things that you, yourself, changed.  If you only use and define applicatives, then things seem to be able to be compiled.
Of course, once you open up the can of worms with an operative, that all goes out the window.  But you don't have to use operatives, that is your choice.

Yes, I've been thinking something similar since my Apr 25 comment. It is like you say, that there are entire Kernel programs that one could validate as being non-weird at a glance, for example by saying "we're only calling known-good applicatives here".
It's possible to go even further than that. I bet there's a technique of finding a "trusted kernel" of code at one or more points in the program, and then using that as the base case of an inductive argument showing that (in many cases) the whole program is trusted. In this case, I use "trusted" to specifically mean "doesn't mess with environments in a dynamic way".
I still need to write that out formally, but I have a feeling it's true. The point is that a lot of the desired optimizations can be made, in the comfortable shadow of such an inductive argument.

This also applies to a LOT of the "machinery".  The whole wrap/unwrap machinery seems overly generic (I don't think I have seen any example that wraps more than once).  Having to cons up arguments for applicatives is known to be a performance disaster ("CONS should not CONS its arguments").  Lots of stuff is merged into a single list in order to only cons/uncons when keeping things separate as (operator, args) would avoid generating a whole bunch of garbage associated with prepending/appending all the time.  etc .

Yes.
I think it's the same dynamic here. Once we have the inductive trust argument, we can also start reasoning about which values escape and which ones don't. For values that don't escape, an optimizer is free to change representations and improve performance under the hood.

Shutt also puts a lot of emphasis on "$define!" to bootstrap everything which completely defeats any attempts at compilation/static analysis.  It's not clear that this is actually required--being able to bootstrap from far less powerful primitives would benefit the performance of the interpreter significantly.

I'm not sure this is a big deal-breaker either. In Scheme, there's a restriction saying that define declarations have to be first in a block, for reasons having to do with simpler static analysis. Even though Kernel doesn't have such a restriction, I bet if you went looking at how $define is actually used, you'll find it used first in a block in 90% of the cases or more. A static analysis could show (in many cases) that after a given point, the environment doesn't get mutated because there are no $define forms, the environment doesn't escape, etc.

Coming at this from a slightly different angle.
I've been trying to think up a simple module system for Bel. Modules don't have to have a static component, but it's not far-fetched for them to do so, since this is a sensible level at which to ask "what names does it export?" This is a static question, in the sense of "shouldn't have to run the code to know that". (I can't back up this sentiment with any fact — it's more of a handwaving argument, along the lines of "what the heck would you be doing in your module code such that it makes the question 'what are its exports?' a hard one to answer!?".)
  I deliberately changed caaddr to have the wrong definition, and you didn't even notice, did you? The body is just boilerplate-ly repeating the information in the function name, and it quickly blends into noise.)
I'm writing it as those repetitive top-level definitions right now mainly due to "speed constraints". In a faster Bel, the first thing I would consider would be to start abstracting and writing it something like this:
(def-cxrs
  caar cdar
  caaar caadr cadar cdaar cdadr cddar cdddr
  caaaar caaadr caadar caaddr cadaar cadadr
  caddar cadddr cdaaar cdaadr cdadar cdaddr
  cddaar cddadr cdddar cddddr)

For some appropriately-defined def-cxrs macro.
We would then be in a situation where a bunch of defs are effectively code-generated by the def-cxrs macro, and (which is saying the same thing) syntactically abstracted by that macro. A module-analyzer whose job it is to statically answer "what are the exports?" would need to opportunistically expand the macro call, because the definitions of interest are in the expansion. This should be OK, because the def-cxrs is "first-order" or "harmless" in a sense I'm afraid I can't make very precise — it's a code-shuffling template-based thing which doesn't require any dynamic context or timing; furthermore, this can be seen from the macro's definition. (Very similar to the "trusted kernel" reasoning above.)
I hereby coin the term "scrutable" for module code that meets this definition. We want to be able to ask "what are the exports?", and not just get a clear answer back (which might involve opportunistically expanding macros a bit), but also have a guarantee that we didn't miss any definitions hiding anywhere. I posit that this is possible, because macros tend to be very well-behaved in the sense that they depend on static stuff, not dynamic stuff. Module code needs to be scrutable, which is what guarantees that its exports are statically known.
Keep in mind that in Bel, macros expand Late, at the same time as functions are called. So the fact that this should hold true and be possible is not obvious, and more than a little surprising. Bel macros has this ability to do dynamic stuff, but none of them use this ability.

(continuing)
It's a unification of these two points of view:

Static: The module is the document. (What you see is what you get.)
Dynamic: The module is the side effects (changes to globe) resulting from running some code.

What the adjective "scrutable" does is establish a kind of peace treaty, an effective bridge between these two views, by saying that you can reliably get from the document to the side effects — essentially because the syntax-abstracting macros are upper-bounded in how weird they are. Moreover, this can also be checked statically.
Just for completeness, here's a thing you cannot do in a scrutable module file:
(def random-symbol ()
  ;; some code that puts together a random 5-letter symbol
  ..)

(mac def-random ()
  `(def ,(random-symbol) ()
     nil))

(def-random)  ;; define and export something random

What I would also like to understand better is the following: when do we late-bind operatives? (Not to mention the applicative/operative distinction.) It's possible to read the entire Kernel spec and Shutt's entire PhD thesis and be none the wiser about this. Shutt seems to take pride in not knowing, with phrases like "in fact, not knowing this is an expected feature of a smooth language". [citation needed]

I found the relevant Shutt quote I must have half-remembered above, from the comments of this blog post:

In particular, I can't think of any good uses for higher-order operatives.

If you think you're on to an interesting appraoch, pursue it. That said, I'm not concerned with a dearth of higher-order operatives (though $make-tag-predicate in my dissertation, a basic technique for avoiding implicit evaluation, comes close). I see the Smoothness Conjecture (dissertation section1.1.2) as predicting that one can't foresee specific particular benefits of smoothness.

That dissertation link has bitrotted; here is a working link.
Just for completeness, here is the Smoothness Conjecture, verbatim from section 1.1.2:

(Smoothness Conjecture) Every roughness (violation of smoothness) in a language design ultimately bounds its radius of abstraction.

Implicit in all of this is (of course) that lambdas/functions factor into, on the one hand, vaus/operatives/fexprs, and on the other hand, evaluation of the operands into values before passing them — therefore vaus are more "smooth" than lambdas. (Also, pointed out in that same comment, lambda calculus is really about operatives, not about functions.)
I'm all for smoothness, and I still agree with the reasons to seek it out... but it's worth thinking about how the paradigmatic countercurrent of macros and compilation came about. It has something to do with preferring not just dynamism and infinite flexibility, but also static guarantees, hardcoding/partial evaluation, and (not putting too fine a point on it) performance.

In stark contrast to the "what should you use fexprs for?" undercurrent developing through this issue thread, I just found this example of the opposite sentiment — "what shouldn't you use fexprs for?" — at the end of a 2020 blog post by Shutt (about a conlang):

As it happens, I have a notion how to approach this, dormant since early in the development of my dissertation:  I've had in mind that, if (as I've been inclined to believe for some years now) fexprs ought to replace macros in pretty much all situations where macros are used, then it follows that TeX, which uses macros as its basic extension mechanism, should be redesigned to use fexprs instead.  LaTeX is a (huge) macro package for TeX.

If fexprs ought to replace macros in pretty much all situations where macros are used, then... not only does a quite-big overlap need to exist between macros and fexprs, in order for fexprs to replace macros; it also suggests that fexprs are somehow more suited for the role macros have taken on. In other words, there's a point (in feature-providing state space) where macros cannot follow, and fexprs just keep going.
I'm curious about that point. I'm curious about real-world concrete examples of such fexprs. These fexprs must, by construction, contain some aspect of runtime-only information, or decision-making delayed until runtime, which macros are too static to emulate. Annoyingly, as Shutt himself has pointed out, actually trying to guess at this group of fexprs (and their benefits) is Hard.
Perhaps Alan Kay's dictum, that "the best way to predict the future is to invent it" applies here. I simply need to build enough awesomely dynamic fexprs until I stumble on a useful one. 😄

I've been meaning to write about an idea I've been throwing around inside my head for a while: in brief, what's with the dangerous and accident-prone separation of Lisp code/syntax, and its appropriate environment?
But I just found that in this LtU thread, Ray Dilinger talks about exactly that. John Shutt replies (with what looks like skepticism).
 I just wanted to dump it here for reference. Maybe I'll come back to this idea when I have read it carefully and/or thought about it some more.

Here's something I'd like to put into writing; been thinking about it for a while (some of which has leaked into above discussions).

Consider all the things defined in bel.bel: functions, macros, values. What my current Bel implementation does is interpret these from the source code, which is excruciatingly slow, mostly due to a kind of inefficiency introduced by many, many layers of function calls. Think of it, conceptually, as an enormous dependency pyramid of definitions, most of which are at least a few levels up from the ground, many of which are a ridiculous number of levels up.
So we precompile the whole thing. This makes sense. I'm still in the process of writing the compiler that will do this, but it's there is no essential difficulty here. We don't even need to worry about compilation time, because this task is an offline, one-off thing, and we can ship Bel with the resulting optimized bytecode. (Even so, I'm guessing it will be relatively fast; seconds, at most minutes.)
But Bel is a radically dynamic language, and built-ins can be redefined. When they are, they trigger an "invalidation" of all the downstream things that depended on the redefined thing. (to be continued, later)

Besides being closed and not really actionable, this issue thread is also low-traffic and mostly "saturated" these days.
But I'd like to submit, for the pleasure of what dedicated readership it might still have, Manuel Simyoni's LispX, which I just discovered via this blog post of his about a topic which would be better suited for issue #569.
If you dig a bit into LispX, you will find it's built on top of Shutt's vau calculus. Which makes it fairly unique alongside klisp of actually implementing the ideas from Kernel — but unlike klisp, LispX presents a much more Common-Lispy surface language to the user. Which is kinda cool.

This is a non-sequitur comment -- I don't think it's got anything to do with anything we've previously discussed -- that I nevertheless think belongs in this thread.
Quoting a mastodon comment by Shriram Krishnamurthi
about a view of the relationship between macro expansion and parsing:

macro expansion happens before parsing. It requires trees, hence it follows the reader; but it has constructs the parser may not know about and, more to the point, does not need to know about. So you can have all these extensions without having to change the core AST. In practice, some Lisps have sufficiently complex macro systems that you have to interleave expansion and parsing: e.g., if a macro can ask questions like "is this variable bound".

I'm curious to hear your thoughts about how his perspective and vocabulary relates to, differs from, or is neatly aligned with, yours/alma's/bel's, and/or encourage you to engage with him on mastodon.
(I would also appreciate your thoughts about how it differs from /aligns with raku's options / possibilities for its macros in the context of RakuAST, but will completely understand if you'd rather leave discussion of that to others.)

@raiph Interesting.

macro expansion happens before parsing. [...] you have to interleave expansion and parsing

This is how Alma started out implementing macro expansion, back when I didn't even think of it as a design choice. Also how I envisioned it in Raku; a kind of interleaved parsing-and-macro-expansion.
This needs a term, so let me coin transient macros for these. I considered also urgent macros or volatile macros, but "transient macros" has the right lack of negative connotations. I think Shriram Krishnamurthi's point is that macros act to translate some surface syntax into some (more) core syntax, similar to a kind of "evaluation at parse time" and so, when parsing, you cannot really parse the (macro-call) source, you can only parse the result.
In Alma, I moved away from this model over the years, and it happened in two steps. These insights were not well-documented, and I should make sure to write this down somewhere. Here's a first attempt:

I realized that when you look at the source code as a document (as does, for example, an IDE or a linter), it is simply insufficient to think of macro call syntax as transient. It becomes like a blind spot: you keep getting the expanded AST, but that's not what you see in the source editor. I ended up adding an --backend=unexpanded flag to Alma (link), but this now looks a bit like a kludge or an afterthought. I think in Lisps, this feels much more natural, because the perspective is that of a REPL, not an IDE.

This comment from 2015 talks about post-declaration of macros and also "quasis can delay the evaluation of macros". Again, this is not really an issue if you're a REPL — because you have this tight read-eval-print loop wherein every "snippet" is its own little program in a way. I guess the competing model is something more like a compile process with several stages taking turns transforming the entire program. In the example code in the comment, the call to two() works out, because it's being "thunked" by the quasi, and so when the two() call actually expands (down on line 263 after we're done expanding one()), the macro two has indeed been declared. (The same would hold true in a faithful translation to Common Lisp, I believe.) But once you allow this delaying of evaluation by quasis, it puts the whole idea of "macros have BEGIN semantics" into doubt. Add that to the design forces imposed by point 1 above, and one starts to spot another local optimum in design space: "macro calls are parsed into normal (call/operator) AST nodes, and don't fire immediately; macro expansion happens separately after parse".

I don't feel like I'm in significant disagreement with Krishnamurthi. He is correctly describing Lisp macros. He also points out that it's not that simple; a question like "is this variable bound?" is of a more "semantic" nature, and puts all kinds of timing issues to the forefront.
I also know that, even in my now-preferred "document" model of macro expansion, there are PhD-level unanswered questions and unsolved problems looming. For example, the "document" corresponding to the source code itself is great for an IDE to deal with. But now there's also a "shadow document" corresponding to the fully-expanded program — and some of the interesting stuff is in there too (and relevant/vital to the IDE). This is partly a UX challenge (how do we present the shadow document to the programmer?), and partly an engineering challenge (can the IDE do macro expansion in the background without feeling slow/unresponsive, and without ever going into infinite loops?). Also, I present it as just the two endpoints (document/shadow document) being interesting here, but what if some macro-expansion debugging needs to happen on a partially expanded document? All I'm saying is, I don't think this story is fully written yet.
This is all somewhat connected to what I call "scrutable code" above. We kind of use macros for their awesome side effects, but (arguably) what you export from a module is the shadow document, not the document.

I'm still thinking about transient macros vs their opposite ("resident macros"? trying it on for size).
I'm pretty sure that the Twitter discussion was an offshoot of Shriram Krishnamurthi's recent blog post about bicameral syntax. As far as I know, he's the originator of this term, which identifies some languages (mostly Lisp) as having two layers of syntax:

The lower house, handled by the reader, which does tokenization and checks that parentheses are well-nested.
The upper house, handled by the parser, which can assume a basic tree-like structure of its input (because the reader already checked), and proceeds to check more domain-specific aspects of the syntax.

I don't have anything excellent to add to this separation, other than to state that I like it. I've experienced it well enough in Bel; I feel there is some strangely-consistent connection between bicameral syntax and a more relaxed (refinement system) approach to types in the programming langauge. But I'm not sure I would be able to put the connection into words.


Issue #45: Improve execution time in large assemblies

The usage of seq caused the reflection to be done repetitively for all operations. I have improved the execution time of the tests in the provided project (see issue) from 12 seconds to 1.4 seconds just by making this tiny change of materializing the sequences into lists. I had to materialize it in two places:

The moment where we filter out all methods that are attributed by one of the event attributes.
The place where we select events in-scope for a given scenario

Wow, nice work to figure out such a productive change

I have done further improvements to scan through the methods less times (it cuts the time in half again).. However, as some of the tests are failing, so will look into fixing that tomorrow.


TypeListToStringSlice should only be allowed to be called on string lists

Coming out of #172 – TypeListToStringSlice can currently be called on a types.List value with any internal element type. How can we make this more type-safe? Ideally this function is only ever called on types.List values that actually hold strings.
I saw another Terraform provider (was it Cloudflare's? hmm.) that had an interesting solution that defines generics that wrap types.List but also hold type information, and defines strongly-typed functions on those.

Ah, it was Amazon's provider: https://github.com/hashicorp/terraform-provider-aws/blob/9002b22d2807d8385418a39e22b682f648b228cf/internal/framework/types/listof.go


[Release 1.3.3] Point manifests ref to 1.3.3 tags.

Description
https://github.com/opensearch-project/opensearch-build/issues/2101
Issues Resolved
Part of https://github.com/opensearch-project/opensearch-build/issues/2101
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #2174 (a403fe8) into main (5333279) will increase coverage by 0.38%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #2174      +/-   ##
============================================
+ Coverage     94.56%   94.94%   +0.38%
============================================
  Files           204      154      -50
  Lines          4253     4079     -174
  Branches         29       19      -10
============================================
- Hits           4022     3873     -149
+ Misses          225      206      -19
+ Partials          6        0       -6

Impacted Files
Coverage Δ

tests/jenkins/jobs/CreateReleaseTag_Jenkinsfile

...RunBwcTestScript_OpenSearch_Dashboards_Jenkinsfile

src/jenkins/BundleManifest.groovy

tests/jenkins/jobs/UploadIndexFile_Jenkinsfile

tests/jenkins/jobs/PostCleanup_Jenkinsfile

...ests/jenkins/jobs/AssembleManifest_tar_Jenkinsfile

src/jenkins/BuildManifest.groovy

tests/jenkins/jobs/BuildFailureMessage_Jenkinsfile

...ts/jenkins/jobs/uploadMinSnapshotsToS3_Jenkinsfile

...ests/jenkins/jobs/AssembleManifest_rpm_Jenkinsfile

... and 40 more

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 5333279...a403fe8. Read the comment docs.


[Enhancement] Support persistent the extra messages in TaskRunStatus for MVs

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Problem Summary(Required) ：

TaskRunStatus only persistent the create info, extraMessage will be lost after FE restarts, so need to persistent extraMessage into the TaskRunStatusChange log and replay it into the history map.
Change history deque to LinkedHashMap to be easy to find the task by taskId.

    public void logTaskRunCreateStatus(TaskRunStatus status) {
        logEdit(OperationType.OP_CREATE_TASK_RUN, status);
    }

    public void logUpdateTaskRun(TaskRunStatusChange statusChange) {
        logEdit(OperationType.OP_UPDATE_TASK_RUN, statusChange);
    }

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

@mergifyio rebase

@mergifyio rebase

@Mergifyio rebase


Update Composer dependencies (2021-02-02-00-11)

Visual regression test passed!
View the visual regression test report


Problem in Shifting between Tabs

VSCode Version: 1.13.1
OS Version: 10.11.6

Steps to Reproduce:
1.Tab no. 1 , working on line number 13
2. Move to Tab no.2 , do some code
3. Move back to tab. 1 and your code is focusing somewhere else instead of line no. 13, everytime you have to scroll back to where you left

Reproduces without extensions: Yes/No

What language are you working in? Can you please provide more detailed repo steps or try capturing a short gif/video of the problem

I am working in c# , IDE unity 5.3.2
shift from one tab to the other ,
move back to the 1st tab , 1st tab will no longer focus at the code where
you left it , it will focus somewhere down in the code. i've to scroll
everytime to move back to the code where i left it
On Tue, Jul 11, 2017 at 4:39 AM, Matt Bierner<EMAIL_ADDRESS>wrote:

What language are you working in? Can you please provide more detailed
repo steps or try capturing a short gif/video of the problem
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/30322#issuecomment-314279957,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL-Yl9R9T72WTMbaaKULCEKVsu1NdCzRks5sMrY3gaJpZM4OSYNa
.

Can you please try taking screenshots or a video of the problem? Also, does this happen if you disable all extensions? Just run the Extensions: Disable All Extensions command to check.


simplified service generation with a single command

It would be nice to have a single command that could combine the five commands required to generate a service, the configs, and the service policies.

Idea: pair of admin commands ziti edge forward dev.private:4321 localhost:8080  and ziti edge reverse dev.private:4321 localhost:8080

Closing per PR


Fix C bindings build

This commit bumps the C++ standard used to C++ 20 in the C bindings build. This removes various compilation errors that could happen with the C++ standard set to C++ 17 (at least they were happening to me, feel free to tell me if there's soemthing else i was doing wrong).
C++17:
refrag@refrag-PC:~/src/pine/bindings/c$ meson build && cd build && ninja
The Meson build system
Version: 1.3.2
Source dir: /home/refrag/src/pine/bindings/c
Build dir: /home/refrag/src/pine/bindings/c/build
Build type: native build
Project name: pine
Project version: undefined
C++ compiler for the host machine: ccache c++ (gcc 13.2.0 "c++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0")
C++ linker for the host machine: c++ ld.bfd 2.42
Host machine cpu family: x86_64
Host machine cpu: x86_64
Library ws2_32 found: NO
Run-time dependency threads found: YES
Program clang-format found: YES (/usr/bin/clang-format)
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300
Build targets in project: 1

Found ninja-1.11.1 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
[1/2] Compiling C++ object libpine_c.so.p/c_ffi.cpp.o
FAILED: libpine_c.so.p/c_ffi.cpp.o
ccache c++ -Ilibpine_c.so.p -I. -I.. -I../../../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++17 -O3 -DC_FFI -fPIC -pthread -MD -MQ libpine_c.so.p/c_ffi.cpp.o -MF libpine_c.so.p/c_ffi.cpp.o.d -o libpine_c.so.p/c_ffi.cpp.o -c ../c_ffi.cpp
In file included from ../c_ffi.h:14,
                 from ../c_ffi.cpp:1:
../../../src/pine.h:109:17: error: field ‘SOCKET_NAME’ has incomplete type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
  109 |     std::string SOCKET_NAME;
      |                 ^~~~~~~~~~~
In file included from /usr/include/c++/13/iosfwd:41,
                 from /usr/include/c++/13/bits/std_thread.h:38,
                 from /usr/include/c++/13/thread:45,
                 from ../../../src/pine.h:8:
/usr/include/c++/13/bits/stringfwd.h:72:11: note: declaration of ‘std::string’ {aka ‘class std::__cxx11::basic_string<char>’}
   72 |     class basic_string;
      |           ^~~~~~~~~~~~
../../../src/pine.h:1073:55: error: ‘emulator_name’ has incomplete type
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/usr/include/c++/13/bits/stringfwd.h:72:11: note: declaration of ‘std::string’ {aka ‘class std::__cxx11::basic_string<char>’}
   72 |     class basic_string;
      |           ^~~~~~~~~~~~
../../../src/pine.h: In constructor ‘PINE::Shared::Shared(unsigned int, std::string, bool)’:
../../../src/pine.h:1102:39: error: ‘to_string’ is not a member of ‘std’
 1102 |             SOCKET_NAME += "." + std::to_string(slot);
      |                                       ^~~~~~~~~
../../../src/pine.h:24:1: note: ‘std::to_string’ is defined in header ‘<string>’; did you forget to ‘#include <string>’?
   23 | #include <unistd.h>
  +++ |+#include <string>
   24 | #endif
../../../src/pine.h: In constructor ‘PINE::PCSX2::PCSX2(unsigned int)’:
../../../src/pine.h:1135:66: error: no matching function for call to ‘PINE::Shared::Shared(unsigned int, const char [6], bool)’
 1135 |         : Shared((slot == 0) ? 28011 : slot, "pcsx2", (slot == 0)){};
      |                                                                  ^
../../../src/pine.h:1073:5: note: candidate: ‘PINE::Shared::Shared(unsigned int, std::string, bool)’
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |     ^~~~~~
../../../src/pine.h:1073:55: note:   no known conversion for argument 2 from ‘const char [6]’ to ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../../../src/pine.h: In constructor ‘PINE::RPCS3::RPCS3(unsigned int)’:
../../../src/pine.h:1146:66: error: no matching function for call to ‘PINE::Shared::Shared(unsigned int, const char [6], bool)’
 1146 |         : Shared((slot == 0) ? 28012 : slot, "rpcs3", (slot == 0)){};
      |                                                                  ^
../../../src/pine.h:1073:5: note: candidate: ‘PINE::Shared::Shared(unsigned int, std::string, bool)’
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |     ^~~~~~
../../../src/pine.h:1073:55: note:   no known conversion for argument 2 from ‘const char [6]’ to ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../../../src/pine.h: In constructor ‘PINE::DuckStation::DuckStation(unsigned int)’:
../../../src/pine.h:1157:72: error: no matching function for call to ‘PINE::Shared::Shared(unsigned int, const char [12], bool)’
 1157 |         : Shared((slot == 0) ? 28011 : slot, "duckstation", (slot == 0)){};
      |                                                                        ^
../../../src/pine.h:1073:5: note: candidate: ‘PINE::Shared::Shared(unsigned int, std::string, bool)’
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |     ^~~~~~
../../../src/pine.h:1073:55: note:   no known conversion for argument 2 from ‘const char [12]’ to ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
 1073 |     Shared(const unsigned int slot, const std::string emulator_name,
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

C++20:
refrag@refrag-PC:~/src/pine/bindings/c$ meson build && cd build && ninja
The Meson build system
Version: 1.3.2
Source dir: /home/refrag/src/pine/bindings/c
Build dir: /home/refrag/src/pine/bindings/c/build
Build type: native build
Project name: pine
Project version: undefined
C++ compiler for the host machine: ccache c++ (gcc 13.2.0 "c++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0")
C++ linker for the host machine: c++ ld.bfd 2.42
Host machine cpu family: x86_64
Host machine cpu: x86_64
Library ws2_32 found: NO
Run-time dependency threads found: YES
Program clang-format found: YES (/usr/bin/clang-format)
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300
Build targets in project: 1

Found ninja-1.11.1 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
[2/2] Linking target libpine_c.so

Woops, forgot to push this when I last updated the use enum keywords I feel like, thanks for spotting!
This was on my staging tree when I last worked on pine, funnily enough.

Hey, it seems like what you pushed changed the build for the C++ client, however, this does not fix the C bindings build, that's a different issue. Or is there something wrong with my system that makes it fail when i'm building the bindings with C++17?

Two minutes before you posted that I actually read back what I did yesterday and saw that I modified the core meson.build file instead of the bindings; reverted correctly as of https://github.com/GovanifY/pine/commit/3298a7dac42b2385a378720bf705fcd6a2eb553f
Sorry for yesterday, was sick all day and made a mistake

That's all good, thank you for your quick response! :)


Segmentation fault when using spacebar to select files in Unstaged Files

Frequently, while selecting files by pressing the spacebar in the Unstaged Files window, the program crashes with:
Segmentation fault (core dumped)
More messages:
Diff Header:
"@@ -1,7 +1,7 @@\n"
Staged Header:
"@@ -1,7 +1,7 @@\n"
Patch lines: 8
0 )  "Origin:  ; OldLine: 1; NewLine: 1"
1 )  "Origin:  ; OldLine: 2; NewLine: 2"
2 )  "Origin:  ; OldLine: 3; NewLine: 3"
3 )  "Origin: -; OldLine: 4; NewLine: "
4 )  "Origin: +; OldLine: ; NewLine: 4"
5 )  "Origin:  ; OldLine: 5; NewLine: 5"
6 )  "Origin:  ; OldLine: 6; NewLine: 6"
7 )  "Origin:  ; OldLine: 7; NewLine: 7"
Staged linesStaged: 1
Staged patch No.  0
0 )  "Origin:  ; OldLine: 1; NewLine: 1"
1 )  "Origin:  ; OldLine: 2; NewLine: 2"
2 )  "Origin:  ; OldLine: 3; NewLine: 3"
3 )  "Origin: -; OldLine: 4; NewLine: "
4 )  "Origin: +; OldLine: ; NewLine: 4"
5 )  "Origin:  ; OldLine: 5; NewLine: 5"
6 )  "Origin:  ; OldLine: 6; NewLine: 6"
7 )  "Origin:  ; OldLine: 7; NewLine: 7"
Name:  "Staged"  Row:  0 :  "Services" ; Count:  1
Name:  "Staged" , countCollapsed(): 1
Name:  "Staged" Current Collapsed:  1 ; New Collapsed:  1
Segmentation fault (core dumped)

Steps to reproduce:

Open program
Open a repo with sidebar or "Open Repository" with one or more unstaged files.
With the "Unstaged Files" window focused, press spacebar to select a file.
Roughly 20% of the time, this will result in the program closing with a segmentation fault.

System info:
Arch Linux x64
5.16.11-arch1-1
gcc version: 11.2.0-3
Compiled from source, via the AUR
On current commit as of March 4th
If there's any additional info/tests you need, I'm happy to help.

Acknowledged: Q_ASSERT(isStageEnabled()); in DetailView.cpp

@slackerbob is it possible if you create an example repository (just create a new one and create a few files in there and try to reproduce it) on which only step 3 must be done to reproduce it, because it depends on the content of the repository

Test.zip

Select "New Folder/New Folder2/Test123.txt"
Press space

I tried this again out and I get a segfault in the qt library it self and not in DetailView.cpp. @slackerbob can you try to reproduce?

@slackerbob is the issue still reproducable? We have a merge request pending so we prioritze it if still an issue

I can no longer reproduce this issue.
Thank you for the fix!
And my apologies for taking so long to respond.

Hmm strange. I am still able to reproduce it


Add an "Auto" editor font hinting setting to match OS font rendering

The "Auto" setting picks the font hinting setting that best matches the operating system's font rendering settings. This font hinting setting is now the default to provide better integration with the OS.
I've also considered exposing this as a setting in DynamicFontData so that it can be used in projects, but this would break compatibility, so it'd have to wait for 4.0. Besides, adjusting font hinting to match the OS is usually not desired in games. It'd still be nice to have in non-game applications though.
We could have more accurate detection on Linux using X11 APIs (since hinting is configurable there), but I don't know how to do this. If it doesn't require too much code, help would be appreciated here :slightly_smiling_face:
PS: I've chosen "Light" hinting on Windows, but maybe "Normal" matches ClearType rendering more?
Preview
Before (all platforms)

After (on macOS)

After (on Linux and Windows)

Thanks!


Project Cleanup

Summary:
This PR changes the following:

Updates ROADMAP
Removes old Node.js v0.12 test code

Type (select 1):

[ ] Bug fix
[ ] Feature implementation
[ ] Documentation improvement
[ ] Testing improvement
[ ] Test added to report bug (GitHub issue #--- @---)
[x] Something not listed here

Is this a breaking change? (select 1):

[ ] 🚨 YES 🚨
[x] No
[ ] I'm not sure

Is this ready to be merged into Dynamoose? (select 1):

[x] Yes
[ ] No

Are all the tests currently passing on this PR? (select 1):

[x] Yes
[ ] No

Other:

[x] I have searched through the GitHub pull requests to ensure this PR has not already been submitted
[x] I have updated the Dynamoose documentation (if required) given the changes I made
[x] I have added/updated the Dynamoose test cases (if required) given the changes I made
[x] I have run npm test from the root of the project directory to ensure all tests continue to pass
[x] I agree that all changes made in this pull request may be distributed and are made available in accordance with the Dynamoose license
[x] All of my commits and commit messages are detailed, explain what changes were made, and are easy to follow and understand
[x] I have confirmed that all my code changes are indented properly using 2 spaces
[x] I have filled out all fields above

Pull Request Test Coverage Report for Build 756

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 85.662%

Files with Coverage Reduction
New Missed Lines
%

lib/Table.js
2
79.59%

Totals

Change from base Build 755:
0.0%

Covered Lines:
2113

Relevant Lines:
2392

💛  - Coveralls


Migration Markup - This figure got a very weird render

Hi Team,
Not sure why but this grey box figure got a class="custom-block-heading" which semantically doesn't make sense. It also has a padding-left that is not expected...
https://www.ssw.com.au/rules/do-you-understand-the-value-of-consistency

Please investigate and fix

AB#58878

Hi @tiagov8

Please investigate and fix

Done - See https://www.ssw.com.au/rules/do-you-understand-the-value-of-consistency

Figure: Simple figure text is in a normal <p> tag

Figure: HTML of figure text

Hi @tiagov8

Please investigate and fix

Done - See https://www.ssw.com.au/rules/do-you-understand-the-value-of-consistency

Figure: Simple figure text is in a normal <p> tag

Figure: HTML of figure text


Error: Given amount is not a safe integer

When using the fetchub part of the web app I got following error:
My amount was not a float or comma number it was actually something like 100

Thanks for creating this amazingly cool webapp :raised_hands:

Ah thank you, same issue that Sifchain has #133. I'll look at this asap ❤

Hello, I've got this also while running Fetch.io:
Failed to get address Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.
My question is can we use min reward amount as a string in chains.json:
from
"minimum_reward":<PHONE_NUMBER>00000000
to
"minimum_reward": "100000000000000000"
Thank you for your wonderful work.

@mcanvar with the changes in #424 you can set a string minimumReward - that will be handled now along with other fixes for these chains.

@tombeynon great thanks!


Implement autofix for F541

Resolves #1125

This is great. I just ran it across some big codebases and didn't see any issues.


Tooltip positioning

This is for fixing the tooltip positioning. Now the tooltip is added directly to the top-level div of the Figure.
There is one consequence of this.  Since the top-level div has overflow : hidden, the tooltip is not displayed if it goes outside the div. I had a conversation with @jasongrout regarding this and the consensus was that removing overflow: hidden will cause the div to measure itself according to its contents which we do not want. But that does not seem to be true at least in the case below.

Here the div still seems to be its actual size even though the child is much larger and is overflowing. In a few resizing tests that I ran, it seems to be working fine. Having said that, the tests are not exhaustive. So, this should be tested thoroughly before being considered for a merge.
P.S.: I tried adding the tooltip to the parent of the div. But that causes problems because the tooltip is position: absolute. Hence the ancestor which is relative determines the location and therefore it is not going to be consistent when it is displayed directly and when it is inside a HBox.;

ping @jasongrout @SylvainCorlay

Here the div still seems to be its actual size even though the child is much larger and is overflowing. In a few resizing tests that I ran, it seems to be working fine. Having said that, the tests are not exhaustive. So, this should be tested thoroughly before being considered for a merge.

We might have been mistaken in making the overflow: hidden. I think the relevant part of the spec is https://www.w3.org/TR/CSS2/visudet.html#Computing_widths_and_margins, which specifies when the content determines the size of the containing box.

I think that @ssunkara1 's approach is the right one.

I'm trying to get a minimal example showing that a div's size is not affected by child svg:
http://codepen.io/anon/pen/MJPBNX
This indicates that at least the height is affected by the child svg.

Is it not affected when positioning is absolute?

Is it not affected when positioning is absolute?

If the svg is position absolute, then the div is not affected.

ok. The tooltip is position absolute

Yes, the tooltip is absolute position, so it doesn't affect the sizing of the enclosing div. That's not the question.
The question here is about making the containing div's size not be affected by the svg's size, in a way that does not require overflow: hidden on the containing div (which would clip the tooltip). I think @ssunkara1 is right that the overflow setting does not change this. I'm trying to understand exactly what makes the enclosing div be sized independent of the svg size.

It also looks like the flexbox model is completely different in its calculation of sizes, etc: https://www.w3.org/TR/css-flexbox-1/#intro
I still don't understand this fully, but I think you're right that the overflow: hidden doesn't actually affect things here. The code looks good to me, so merging.


Fix: Task is not removed for staff while project moved to next stage

Fixes #3946
Test Steps

[ ] …

Hey @sandeepsajan0 I don't think the tasks show up in my task list anymore - I just create a new project and make sure the fund has a valid Project Form set & I'm the lead right?

@sandeepsajan0 this worked for me! my only thoughts are that only staff that are leads on a project should have it appear in their task list. At least with how many projects OTF has I could see it bogging down the tasks lists. @frjo @Techslammer any thoughts?

@wes-otf If OTF want to change who gets the task I think a new issue is the place for that.
If this PR removes the task as it should we might approve it.

that sounds good to me! I'll open another issue


Gist: GitHub returned error 401: Bad credentials

No matter what I try to do with this plugin, I get the error:
Gist: GitHub returned error 401: Bad credentials
I'm using OS X, and I've tried adding the credentials to my keychain and to the settings file. I've tried multiple accounts and passwords as well, and I still get the error.
Even when I remove the plugin and add it again, same issue occurs, and it never prompts me to add my information to the settings file (like it says in the readme)

doesn't work

having that issue with android studio too

This is my problem how to solve this

This plugin is for Sublime Text, not Android Studio.

I am having issues. I read all the responses but I am new to working on software. Can someone please explain to me step by step where to fix the problem. i cannot login as everyone couldnt

I am having issues. I read all the responses but I am new to working on software. Can someone please explain to me step by step where to fix the problem. i cannot login as everyone couldnt


Bugfix: Agenda auto_time_box not updating when events update

the auto_time_box property, that sets the view of a day to be bound to the first and last event of that day, was working only if it was set when timespanEvents were established.
If they took longer than the manifest to load, and auto_time_box was set, say via external property, before that, the startMinute / endMinute properties wouldn't update to control the viewbox.
This PR adds a reactive binding to ensure it updates whenever auto_time_box, start_minute, end_minute, or timeSpanEvents are updated.
License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Specifying the timezone to America/Toronto per https://github.com/cypress-io/cypress/issues/1043#issuecomment-623293020


ES6 is no more

Hi
I just open this issue to let you know that ES6 is not anymore, so you should change the names in this repo. The correct name now is ES2015 It has been like this since january 2015.
You can google this and also check out the specs, but here is one nice thread to study:
https://esdiscuss.org/topic/javascript-2015

The correct name now is ES2015 It has been like this since january 2015.

Meh, people know what it means when you reference ES6, which is what's most important. Most people I know still call it ES6 colloquially, too.
In any case, I actually wonder if using ES2015 is also inaccurate in a different way. What I mean is that this is technically a Babel boilerplate, so it supports whatever Babel supports. O' course, Babel isn't restricted to any particular version of JavaScript...it's just future JavaScript.
I wonder if there's some way we could future-proof the README by coming up with language that communicates that, rather than sticking with a particular version.

I like the term ESNext for what it's worth.

EsNext was one of the name suggestions for the specs too.
I like it and it state clear what it is without messing with year and
version numbers as in es2015 and upcoming es2016
On May 11, 2015 11:43 AM, "Nick Randall"<EMAIL_ADDRESS>wrote:

I like the term ESNext for what it's worth.
—
Reply to this email directly or view it on GitHub
https://github.com/babel/babel-library-boilerplate/issues/153#issuecomment-100755398
.

I'm just gonna stick with ES6, I think. Using "ES6/2015" is too wordy to use everywhere, and the term ES2015 doesn't have anywhere near as much recognition as ES6. There's not much gain in making the change, I think.

Note: Babel always refers to it as ES6 and not ES2015. See the homepage for a bunch of uses.

Babel updated its homepage to use ES2015, so I'm going to switch the boilerplate over, as well.

I don't care.  Just stop spam me!!!
On Mon, Jun 8, 2015 at 10:36 PM, James Smith<EMAIL_ADDRESS>wrote:

Babel updated its homepage to use ES2015, so I'm going to switch the
boilerplate over, as well.
—
Reply to this email directly or view it on GitHub
https://github.com/babel/babel-library-boilerplate/issues/153#issuecomment-110016621
.

Just stop spam me!!!

Friend, you're the one subscribed to an issue in my repository. You can unsubscribe by clicking the button on the right-hand side of the page.

@jmeas I updated my comment. Read again.


Write something placeholder

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

When create a new board, there's some placeholders to guide users to start writing.

closes via f23f54e86b202443bab453e31db1430051c74a63


Win: Fix .dll lib path

Move every .dll to bin/, where PATH can find it.
Ref.: https://github.com/conda-forge/warpx-feedstock/pull/38#issuecomment-1015613012
Related to first issue in #37

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

I think this problem went away in 22.04+