Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 19:46
    karelz milestoned #56362
  • 19:46
    karelz demilestoned #56362
  • 19:46
    karelz labeled #56362
  • 19:46
    karelz unlabeled #56362
  • 19:45
    karelz edited #56362
  • 19:45
    jkotas closed #56245
  • 19:45
    karelz labeled #56362
  • 19:45
    karelz unlabeled #56362
  • 19:44
    karelz milestoned #56362
  • 19:44
    MattGal commented #56295
  • 19:44
    karelz labeled #56217
  • 19:44
    karelz unlabeled #56217
  • 19:44
    karelz milestoned #56217
  • 19:44
    karelz commented #56217
  • 19:44
    msftbot[bot] commented #56416
  • 19:44
    MattGal commented #56295
  • 19:43
    EgorBo labeled #56416
  • 19:42
    kg commented #55849
  • 19:42
    karelz unlabeled #56409
  • 19:42
    rjmholt commented #56405
Rodion Mostovoy
@rodion-m
@canton7 Thanks! So, the term BLC is still alive and correct, right?
Also I was wondering is it correct to say that BCL is a part of CLR?
Michał Zegan
@webczat
no
Antony Male
@canton7
@rodion-m I guess? https://docs.microsoft.com/en-us/dotnet/standard/glossary#bcl says that "BCL" and "runtime libraries" can refer to the same things, https://docs.microsoft.com/en-us/dotnet/standard/glossary#clr says that "CLR" can refer to the .NET Core Runtime, and https://docs.microsoft.com/en-us/dotnet/standard/glossary#runtime says runtime can refer to the runtime libraries.... A lot of these terms are bit context-dependent, which makes precise yes/no answers about what is/isn't correct hard to give
It's true to say that the runtime repo contains both the BCL and things like the JIT
Rodion Mostovoy
@rodion-m
@canton7 Thanks for an explanation!
iinuwa
@iinuwa:matrix.org
[m]
Does anyone happen to know the deadline for getting things into the .NET 6 runtime, or if there will be any features released in patches for .NET 6? I have a feature (LDAP SSL support on Linux) that I'd like to get into .NET 6, but I don't know how much time I have
John Tur
@reflectronic:matrix.org
[m]
Perhaps until july or august
They do not like to disclose exact dates
iinuwa
@iinuwa:matrix.org
[m]
gotcha, ok
Alexander Köplinger
@akoeplinger
if it's something that requires new public API you'll need to get it in sooner than later, since it needs to have API review etc first
John Tur
@reflectronic:matrix.org
[m]
the public API surface for .NET 6 needs to be final by July 17
I presume that non-API related work can go on for a little longer
iinuwa
@iinuwa:matrix.org
[m]
It's an existing API, just not supported on the Linux platform: dotnet/runtime#43890
iinuwa
@iinuwa:matrix.org
[m]
I wound up submitting a PR. (my first to the .NET ecosystem!)
Chris Ochs
@gamemachine
Is there any rule of thumb on the impact of gen 2 objects that live forever on the time it takes for the GC to run?
Stephen A. Imhoff
@Clockwork-Muse
@gamemachine - What kind of rule are you wanting? "Forever" is just another way of saying "lived longer than one cycle", so it's still a relatively common case (all real world applications will have some objects in this category).
Chris Ochs
@gamemachine
Scenario is we have very little object creation (game server). And almost everything that lasts longer then a cycle is pooled for the lifetime of the app. So I'm concerned about the overhead of the GC just having to touch stuff in gen2, as only a tiny percentage would ever get out of gen2.
We have our own set of unmanaged collections, so I have the option of using those more. Not ideal but it's on the table
John Tur
@reflectronic:matrix.org
[m]
I mean, pooling is quite common in the .NET world nowadays, so there is not an inherent issue
What kind of objects are these exactly?
Chris Ochs
@gamemachine
Mostly smallish objects, actual memory 90% are probably under 200 bytes. The values are predominantly value types mostly integers. Which I'm also curious if that makes it easier on the GC to track references? Even though they are on the heap as they live in managed collections, the values themselves don't have references to managed types.
John Tur
@reflectronic:matrix.org
[m]
0 impact
Maybe if you had 100 megabytes of stuff I'd be worried
Gen 2 collections are super infrequent and often run concurrently with your app code, so the latency impact is minimal
Stephen A. Imhoff
@Clockwork-Muse
I think he was saying each individual object is under 200 bytes, as there's no way the total is that small.
Value types aren't tracked by the GC, whatever object that contains them is tracked by the GC. So if you have an array or list of ints, it's going to track only the array or list.
Stephen A. Imhoff
@Clockwork-Muse
structs are also value types, but I'm not 100% certain what happens if they contain a reference type - a struct holding a reference to an array, for instance. Presumably the structs themselves aren't tracked, but I'm not sure how the references they contain are tracked.
Chris Ochs
@gamemachine
Ya that's what I was thinking, it's just the collection itself that is tracked if the values are blittable value types which all of ours are.
Huo Yaoyuan
@huoyaoyuan
quick question: can function pointers be used when targeting downlevel framework?
i mean 3.1
John Tur
@reflectronic:matrix.org
[m]
Yes
The one thing that is not supported is delegate* unmanaged<...> without specifying a specific unmanaged calling convention
There are also some bugs with marshaling structs that have function pointer fields
iinuwa
@iinuwa:matrix.org
[m]
I'm hacking on a .NET 6 library, and I'd like to use that library in a separate project. I think I'm missing something in the contributing docs, but does anyone have tips on how to use the library compiled from source in a different project?
Joe4evr
@Joe4evr
@iinuwa:matrix.org simplest way is to package it up as a nuget package and put it in a folder that you assign as a local nuget source
iinuwa
@iinuwa:matrix.org
[m]
ah, ok. that makes sense.
thanks!
Joe4evr
@Joe4evr
:ok_hand:
iinuwa
@iinuwa:matrix.org
[m]
(working on the runtime is kind of addicting 🙂)
Yair Halberstadt
@YairHalberstadt
Is there any way to check if a dll is .Net Framework, .Net Core or .Net Standard?
Antony Male
@canton7
dotpeek can tell, so yes
Alexander Köplinger
@akoeplinger
you can look at the TargetFrameworkAttribute assembly level attribute
most assemblies should have that, if it doesn't then I'd check whether it references netstandard.dll -> NS, mscorlib.dll -> .NET Framework, else -> Core
Yair Halberstadt
@YairHalberstadt
Thanks
Joseph Musser
@jnm2

dotpeek can tell, so yes

If you look at how it tries to determine net35 versus net20, it's fascinating

CW2
@cw2

Hello! At first, thanks for all the great work done on .NET :thumbsup:

I have a question regarding the git workflow between the main dotnet/runtime and feature branches like dotnet/feature/NativeAOT or dotnet/feature/NativeAOT-LLVM: I can see in the PR history that there are main merges, but on what basis does that happen? Is it regular, like every so days or more random, e.g. when the maintainer decides the changes are worth merging? Also, does it happen that changes from feature (lab) branches are merged (cherry-picked) back to main?

Alexander Köplinger
@akoeplinger
it's random, whenever someone feels that it's a good point to merge main into the feature branch
and yeah if there's an important fix that doesn't just apply to the feature branch I'd expect that to land in main separately
but there are no hard rules