Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 04:43
    LeeTibbert commented #2710
  • 04:17
    LeeTibbert synchronize #2710
  • 00:36
    armanbilge commented #2712
  • 00:35
    armanbilge edited #2712
  • 00:35
    armanbilge edited #2712
  • 00:20
    armanbilge commented #2712
  • 00:17
    armanbilge commented #2712
  • 00:16
    armanbilge commented #2712
  • 00:15
    ekrich review_requested #2704
  • 00:15
    ekrich review_requested #2704
  • 00:14
    ekrich edited #2704
  • Jul 06 23:47
    armanbilge commented #2712
  • Jul 06 22:57
    ekrich edited #2704
  • Jul 06 22:53
    ekrich synchronize #2704
  • Jul 06 22:24
    armanbilge commented #2712
  • Jul 06 21:54
    ekrich commented #2710
  • Jul 06 21:43
    LeeTibbert synchronize #2710
  • Jul 06 21:09
    ekrich edited #2704
  • Jul 06 21:08
    armanbilge commented #2712
  • Jul 06 20:57
    armanbilge opened #2712
David Bouyssié
@david-bouyssie
However, my opinion is that, we don't win that much thanks to judgment in favor of Google, but we would have lost a lot if the judgment was in favor of Oracle, since this would have required the court to decide that APIs were copyrightable.
But maybe I'm wrong.
Bjorn Regnell
@bjornregnell
@david-bouyssie It seams to me that the ambition to elevate technology by sharing in the open is part of the consideration of "fair use" when as a layman trying to interpret the verdict. So as SN is open source and not aimed at competing but rather being an open source complement to things like JVM and GraalVM using a liberal license helps to be categorized as "fair use". In that regard the ruling of the US supreme court is positive as "fair use" is connected to a kind of healthy technological progress, and I guess that would be in line with the intention of EU law as well (but we would need a layer here, who probably would say that it has to be tested in court to be sure).
Eric K Richardson
@ekrich
If this link works. There were 4 criteria including the amount copied which was small. To me this is the key part of the dissent. https://twitter.com/ekrich/status/1379129626312634371?s=21
David Bouyssié
@david-bouyssie
@bjornregnell @ekrich :thumbsup:
Wojciech Mazur
@WojciechMazur
@catap That's possible, although I have not tried to reproduce them yet. Anyway thanks for creating these two issues with reproducers. I'll try to get on them later in this week
Kirill A. Korinsky
@catap
@WojciechMazur take your time, I have a way how to overstep both of this issue. Quite ugly. Ok, very ugly. But, better than nothing. If you think that it is good idea I can add to issue a workaround.
Kirill A. Korinsky
@catap
@bjornregnell I'm working this days a lot of with lawyers in IP fields in EU. Let me be blunt: each country very unique. Technically some decision can be made on EU level, but all directive of EU should be ratified by local parlament or something like this. Usually it is ratified as is but sometime some part of (!) of directive at some countries excluded. The best example which is related to IT is e-invoice. Almost each country has its own format, vendor and so on. :(
Eric K Richardson
@ekrich
@WojciechMazur I am finding porting from 0.4.0-M2 very troublesome because of the C types like CSize/ULong etc. There are no basic arithmetic operator that allow Int * CSize for example to pass to malloc. We are pretty used to being able to add an int to a long and having the result promoted to a long at least in Scala. Promotion is pretty safe. Of course using unsigned arithmetic is safe if you want to avoid a negative number but the current ergonomics are quite cumbersome. This was the ngram processing which is easy to port but with the new changes I can't get it to work yet - not for this reason but another one.
Kirill A. Korinsky
@catap
BTW I jsut discovered that GC.* methods aren't documented. And the most tricky and interesting part which is missed: can user use it from some 3rd party library which expected callbacks with dynamic memory
Kirill A. Korinsky
@catap
Anyway, I do have another memory corruption issue: https://gist.github.com/catap/6214e29b23191188432b778d76207842
LeeTibbert
@LeeTibbert

@WojciechMazur A question, if you please, about handling & respecting Intellectual Property for PRs where the original author is unavailable. PR #1921 adds network datagram (UDP) support to posixlib. The conceptual content certainly Looks Good to Me. The exact textual content needs a rebase because of a later, merged PR which made the case of constants consistent.

It would be nice to do the rebase so that the person doing the merge did not have to do so. Would it be in line with
Scala Native's Intellectual Property guidelines for me to create a new PR, based on and acknowledging PR #1921, and do the rebase? Is there a better way to proceed? I am trying to help a community generated PR get merged rather than create stress. Thank you for your providing direction.

nafg
@naftoligug:matrix.org
[m]
btw in general that's one of the things Mergify can you, you can write @Mergifyio rebase in a PR comment and it will rebase it
Kirill A. Korinsky
@catap
@WojciechMazur ok, my workaround works very well on trivial cases, and on huge application it still has random memory corruptions
Sébastien Doeraene
@sjrd
Would it be in line with
Scala Native's Intellectual Property guidelines for me to create a new PR, based on and acknowledging PR #1921, and do the rebase?
If the original author has signed the CLA, then yes.
Kirill A. Korinsky
@catap
Wired question: is it possibly to allocated object with custom allocation (for example system malloc) and run it's constructor?
LeeTibbert
@LeeTibbert
Sébastien, re: CLA Thank you, that is what I need to know and lets me make progress.
Kirill A. Korinsky
@catap

About scala-native/scala-native#2247

I have no idea how to minimise this test to something that I can share. So, if anyone have any ideas I'd love to hear it.

Eric K Richardson
@ekrich
@WojciechMazur I think this is fine based on my research outlined in the PR, and it works now so I don't think we need to make changes. scala-native/scala-native#2240
Denys Shabalin
@densh
@catap If you look at it from the GC's point of view: all objects have to be reachable from either on-stack variables or an array of global variables that store the values of top-level object X definitions.
If you pass a GC value to some C data structure and it stops being visible from those locations, it's marked as garbage.
To change that you need to make those objects reachable, and that's why your workaround is working: it's making them live through transitive link from top-level object -> hashmap -> element.
Eric K Richardson
@ekrich
Denys Shabalin
@densh
A more elegant version could be to define a "Handle[T]" type that abstracts over adding and removing elements from the top-level mutable hash map.
It could have a C-friendly alloc/free-style interface as well. Here freeing would be equivalent to dropping the value from the hashmap.
Handles could be reference-counted (with manual inc/dec ref) to allow multiple locations to refer to a single handle.
Eric K Richardson
@ekrich
Bjorn Regnell
@bjornregnell
@WojciechMazur cool blog post on SN performance Thanks for your efforts!! I just added a link to it from here https://github.com/lunduniversity/scalades
Denys Shabalin
@densh
@ekrich @WojciechMazur There is a very simple explanation why queens is so much slower then the rest of the benchmarks: interflow doesn't optimize methods with exceptional control-flow at all.
Given that adding exception awareness is likely to increase complexity of the interflow algorithm significantly I'd argue that this benchmark (and the underlying use case of non-local returns) is not interesting enough to pay the cost.
Otherwise very interesting comparisons! The biggest surprise to me is that we use waaaaay less memory than the alternatives.
Eric K Richardson
@ekrich
@densh Thanks for your feedback and help here and there. You built a very cool project and we really appreciate any help you can give us.
Denys Shabalin
@densh
@ekrich 😁
Eric K Richardson
@ekrich
Looking for that Google 25% time if they do that anymore. :smile:
@densh One other thing. We are very close to a Scala Native build for scalafmt.
Denys Shabalin
@densh
It would be very interesting to see the performance profiles once it's fully ported.
Eric K Richardson
@ekrich
The scalameta/metaconfig is done and should be on its way to central right now.
This was always one of my goals to have a real world benchmark.
David Bouyssié
@david-bouyssie
@WojciechMazur very nice article. Congrats!!!
Kirill A. Korinsky
@catap
@densh yep, I understand that and I feel that it should be at least well documented.
and my "hack" is something like Handle[T] to be honest, just some based trial that manage everything.

anyway, it doesn't explains this: scala-native/scala-native#2243

:)

Kirill A. Korinsky
@catap
@densh that do you think about that? scala-native/scala-native#2248
Technically it is very similar to my internal hack.
Andriy Plokhotnyuk
@plokhotnyuk
Can anybody help with adding SN support for scala-java-times and scala-java-locales projects (cquiroz/scala-java-time#45 and https://github.com/cquiroz/scala-java-locales/issues/38) ?
David Bouyssié
@david-bouyssie
@plokhotnyuk I think @LeeTibbert tried to port it already but ran into some issues. If you search for "scala-java-time" in the gitter you can see the previous discussion (2019 December 7th)