Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:01
    straight-shoota closed #11523
  • 13:35
    straight-shoota demilestoned #11515
  • 13:24
    beta-ziliani unlabeled #11529
  • 13:21
    beta-ziliani demilestoned #11454
  • 13:21
    beta-ziliani demilestoned #11513
  • 13:02
    straight-shoota labeled #11431
  • 13:02
    straight-shoota labeled #11431
  • 13:02
    straight-shoota labeled #11431
  • 13:00
    straight-shoota labeled #11349
  • 13:00
    straight-shoota labeled #11349
  • 12:59
    straight-shoota labeled #11321
  • 12:59
    straight-shoota labeled #11321
  • 12:14
    straight-shoota labeled #11548
  • 12:14
    straight-shoota opened #11548
  • 12:14
    straight-shoota labeled #11548
  • 11:16
    straight-shoota closed #11536
  • 09:44
    BlobCodes synchronize #11094
  • 09:32
    BlobCodes synchronize #11211
  • 07:49
    HertzDevil opened #11547
  • 07:49
    HertzDevil labeled #11547
oprypin
@oprypin:matrix.org
[m]
@mattrberry: yes i think it will not be possible to use the makefile on windows. look, it's building some weird lib file https://github.com/oprypin/crab/runs/2814402132?check_suite_focus=true#step:9:56
other than that, this is very close to working
Matthew Berry
@mattrberry
Hmm I’m on mobile, but maybe that’s because I’m linking it back here? https://github.com/mattrberry/crystal-imgui-backends/blob/16a576200f366c0c6aec1fc5033108ae1a975f5e/Makefile#L40
oprypin
@oprypin:matrix.org
[m]
the file is "weird" because g++ is used unconditionally for that build, whereas everything else is managed by MSVC
well i deleted that part anyway, so that literally can't be it
the main remaining thing, as I said, is to find an alternative to all these $(CXX) lines and use cl.exe instead of g++. https://github.com/mattrberry/crystal-imgui-backends/blob/16a576200f366c0c6aec1fc5033108ae1a975f5e/Makefile#L45
i have no idea if that's viable within the Makefile. i opted to go for a separate build script on Windows. https://github.com/oprypin/crystal-imgui-sfml/blob/master/make.cmd
Matthew Berry
@mattrb:matrix.org
[m]
Hmm I don’t know Makefile super well, but that’s supposed to be defined as the c++ compiler for that system, right? For much of the makefile, I borrowed it straight from the imgui example here https://github.com/ocornut/imgui/blob/master/examples/example_sdl_opengl3/Makefile
oprypin
@oprypin:matrix.org
[m]
yeah you end up using the C++ compiler for that MinGW (or whatever) environment
that Makefile ends up referring to POSIX tool clones
and it's moot anyway because even if CXX=cl.exe , it cannot accept GCC-like flags
oprypin
@oprypin:matrix.org
[m]
Matthew Berry: that makefile contains support for MinGW-GCC
Crystal works only with cl.exe, doesnt work with MinGW-GCC
but they do also have support for cl.exe
Matthew Berry
@mattrb:matrix.org
[m]
Ah now we’re getting even further into the realm that I know absolutely nothing about :/ Are those just two different c++ compilers for windows? I’ll be able to grab my laptop in a couple hours to look a little deeper too, although I don’t have windows there either :/
oprypin
@oprypin:matrix.org
[m]
Matthew Berry: yeah they are. cl.exe is by Microsoft, where as MinGW is a collection of ports of POSIX tools to Windows; they end up being partly in an emulated environment or something weird
so yeah this is quite ugly and way harder than i made it seem
Matthew Berry
@mattrb:matrix.org
[m]
Ah, well again thank you tons for taking a look!! Maybe someday it’ll be easier to port :) Appreciate you trying :)
didactic-drunk
@didactic-drunk
@oprypin:matrix.org Attempting to improve UX (developer experience DX, is that thing?). There are 3 unix use cases. 1) Building a rpm/deb package (or personal executable) that relies on the distribution packaged libraries. 2) Building a run on any distro binary that can't rely on a system installed libsodium. 3) Same as 1 but the system libsodium is ancient and can't be used (This is very common). The build scripts check the system version (but allow overrides) and them by default if new enough otherwise download and build the version tested with sodium.cr. None of this is a concern for windows which never has a packaged libsodium
@oprypin:matrix.org shards install takes care of everything unless you want to override a value provides the best DX even if the build script is more complex. I doubt I'd have half as many users if it required: manually check your distro version. If it's >= x install else download and build it yourself.
oprypin
@oprypin:matrix.org
[m]
i see. well, maybe my main dissatisfaction comes from how rigid postinstall is. any tiniest problem and everything just bails out
and you're basically taking on a task of maintaining a fully universal build of a lib.
didactic-drunk
@didactic-drunk

Yes. If only postinstall allowed

postinstall:
  linux-musl: ./build/linux-musl.sh # needs variant for some reason
  linux: ./build/linux.sh
  windows-msvc: ./build/windows-mingw.cmd
  windows-mingw: ./build/windows-mingw.cmd
  posix-default: cd build/posix && make
  windows-default: cd build/windows && make

And tried keys in order of most specific to less specific arch trying posix-default or windows-default 2nd to last before default.

oprypin
@oprypin:matrix.org
[m]
@didactic-drunk: well it looks like you're already miles ahead of the rest in terms of thinking this through. I'd support this
From IRC (bridge bot)
@FromIRC
<yxhuvud> i could see platform dependent dependencies too.
Giorgi Kavrelishvili
@grkek
I am a bit inactive here sorry guys
How have you all been?
Kaia Leahy
@tenebrousedge
this "life" thing is pretty weird, imo
Giorgi Kavrelishvili
@grkek
What life thing?
Kaia Leahy
@tenebrousedge
all of it, but particularly the bits that concern me
so if I fail to get a dev role, but the CEO wants me to interview for a data engineer role because they "think I can pick it up quickly", how should I prepare for an interview for that?
j8r
@jrei:matrix.org
[m]
for a internal promotion? Or CEO suppose you'll interview someone for free?
Kaia Leahy
@tenebrousedge
neither? I think you misread
From IRC (bridge bot)
@FromIRC
<yxhuvud> i have never in my life prepared for an interview except for a quick browse of the company web pages. shrug
j8r
@jrei:matrix.org
[m]
I didn't understood then
Giorgi Kavrelishvili
@grkek
Life doesn't really matter, be good to everyone and do what you like to do and just pass away in peace
Thats all of it
Other things are useless distractions which were forced upon you for torture
@yxhuvud Same!
j8r
@jrei:matrix.org
[m]
by preparing, you also mean some exercises they want you to do before the interview?
Giorgi Kavrelishvili
@grkek
Nah, just an interview
If they plan on doing some exercises I just say
Kaia Leahy
@tenebrousedge
I mean I have only a loose idea of what a "data engineer" does, and don't know what I'm going to be expected to know
Giorgi Kavrelishvili
@grkek
Send it over the E-Mail and Ill send it over to you once done
j8r
@jrei:matrix.org
[m]
Pretty sure they have an even looser idea of why they want a "data engineer"
the solution can just be to have a precise job sheet
From IRC (bridge bot)
@FromIRC
<yxhuvud> jrei: no, if they want me to solve a reasonably sized problem that is fine. that is different
didactic-drunk
@didactic-drunk

@oprypin:matrix.org I have a few shards (example) that run on limited platforms. Some are POSIX only. One is OpenBSD only. Future ones may be window only. What say you of 2 additional options for shard.yaml?

A platform flag. If it matches the shard is included. If not the shard is automatically pruned.

# For mmap
  platforms: 
  - !windows
  - posix (or)

# For mostly posix shards
  platforms: 
  - !macos
  - posix

A 2nd platform flag with identical semantics should be available for dependencies

  dependencies:
    generic-file-polling.cr:
      platforms:
      - !linux
    inotify.cr:
      platforms:
      - linux

Why both? These options aren't mutually exclusive.

Sometimes the shard author knows it won't work on specific platforms and they can specify them.

Other times the author may choose a more specific solution and wish to exclude a generic shard (see inotify example above). Or they could be working on an newer/older system where a shard specified dependency doesn't work in their particular situation.