[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

What's your excuse for not using a purely functional

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 67
Thread images: 4

File: nixos-logo-only-hires.png (49KB, 1024x1173px) Image search: [Google]
nixos-logo-only-hires.png
49KB, 1024x1173px
What's your excuse for not using a purely functional package manager?
>>
I do, it's called yaourt
>>
No noteworthy benefit to me.
>>
I have a operating system who doesn't meltdown cause two similar libraries with different version number.
>>
>>62042919
Functional package managers allow you to install different versions and even compile-time configurations on the same system.
>>
>>62042903
Not even close to purely functional package management.
>>
>>62042932
I have a operating system that doesn't need that because it haves a sane package manager from the grown uo.
Thanks.
>>
>>62042990
Have fun managing each package individually. I'll just be here making a single expression to describe my system.
>>
>>62043048
>implying that I can't
>>
>>62043071
I suppose "shitty impure OS" counts as an expression for you, doesn't it?
>>
File: 1493320672478.png (144KB, 1164x528px) Image search: [Google]
1493320672478.png
144KB, 1164x528px
I just booted this up in a VM. Am I about to get memed, or is this really worth spending time on?
>>
>>62043342
There's a bit of a learning curve, since it's so much different from a normal UNIX system. But I've used at least a dozen different distros, and none of them compares to it.

Hell, if you just want the package manager on top of your current system:

$ bash < (curl https://nixos.org/nix/install)
>>
File: 1473590890379.png (139KB, 772x507px) Image search: [Google]
1473590890379.png
139KB, 772x507px
>>62043427
Since it's so new is there a lot of gotchas?
How stable and reliable is it? Would you run it as your daily driver main computer?
Also I hear that you cant just grab some source tar and ./configure && make it, you have to patch the source to use these non FHS paths.
>>
>>62043663
> Since it's so new is there a lot of gotchas?

It's not very 'new' (2003-ish), but since it's not an FHS-based system, it does have some 'gotchas' that you get accustomed to.

> How stable and reliable is it? Would you run it as your daily driver main computer?

Each time you make a change to your system's expression, the previous system is saved. You can revert back and forth if anything breaks, so I'd say it's more stable than any other system.

I can experiment with setups that may break my system while being confident I can revert back if there's any issues. It makes developing much more pleasant, which is why I use it as my daily driver.

> Also I hear that you cant just grab some source tar and ./configure && make it, you have to patch the source to use these non FHS paths.

If you want it to work well, you need to create an expression for it. But I haven't run into anything that requires source patching. There's also a bunch of helper functions like `fetchFromGithub` that make derivations (packages) extremely easy to make.
>>
>>62042882
I use a package manager that works => functional
>>
>>62042882
So... It sounds like you need to be a programmer to set this up.
>>
>>62044044
You need basic programming skills if you want to use it effectively.
>>
>>62044022
I know it's been around since then but I think you knew what I mean, it's new more like still under heavy active development and things are rapidly changing. Sure you can roll stuff back if it breaks, but everything is churning so rapidly. If you have your own software projects you have to constantly keep up. But it's interesting hearing that you are able to actually use it as your daily driver.
I read its a source based distro with the ability to use binary cache if your config matches, but it's not clear how to do it like Gentoo with USE flags and CFLAGS.
I just tried to edit the configuration and add gcc to systemPackages and then nixos-rebuild but it's taking forever.
>>
File: GuixSD.png (8KB, 200x200px) Image search: [Google]
GuixSD.png
8KB, 200x200px
but i do
>>
just did a search and result turned up this:
>So runit is on the packages, how i can replace systemd with runit?
>NixOS is joined at the hip with systemd, for now. There is an effort to abstract away the init system ongoing.
>>
>>62044385
GuixSD is Systemd free~
>>
>>62044206
this uses guile as an extension language, doesn't it?
that's pretty dank
>>
>>62044044
it's a research OS
it's fap bait for nerds
no one's actually expected to use it
>>
nix and guixsd are pretty fascinating to me also snap packs
>>
>>62044187
> it's not clear how to do it like Gentoo with USE flags and CFLAGS.

You can set CFLAGS per package, but you need to modify NIX_CFLAGS_COMPILE in stdenv to set them system-wide:

stdenv.userHook="NIX_CFLAGS_COMPILE+=\" -march=core-avx2 -O2 -pipe\"";


As for USE flags, these are attributes that should be changed on a per-package basis. You can technically map a 'packageOverride' on your system packages and change it that way, but that's not entirely recommended.

> I just tried to edit the configuration and add gcc to systemPackages and then nixos-rebuild but it's taking forever.

systemPackages isn't really for applications you use in specific environments. It's better to install those with nix-env instead. Save systemPackages for utilities that you use pretty much everywhere.

Though nothing bad will happen if you do prefer to put everything in systemPackages.
>>
>>62044462
So would it be a cool idea to just do a bare minimum install with only a few systemPackages and then install the rest X11, KDE, Firefox, etc or whatever else with nix-env?
>>
>>62044522
Eh, system-wide services like X11 and KDE are better installed using things like:

services.xserver.enable = true;
services.xserver.desktopManager.plasma5.enable = true;


You can find all these options with:

man configuration.nix


Firefox is definitely a good example to use nix-env for though.
>>
I do, it's called xbps
>>
>>62044567
That's all you need to do? Setting up a full plasma environment is just two lines?

That actually seems pretty damn cool.
>>
>>62042903

did you mean pacaur?
>>
X B P S
B
P
S
>>
>>62045736
>>62042903
These aren't even package managers.

>>62042882
I am using it but currently I'm only using it to manage Haskell and Agda software. For the rest of my system I'm using pacman. My only real issue with Nix (as an entire OS) is that last time I checked it looked like it still had a way to go (as far as software support) and likely wouldn't get there until it built up a bigger userbase. The way it works is pretty brilliant and would especially get rid of all the issues caused by retarded package managers for specific programming languages (eg. Python and Haskell).
>>
>>62044206
When will it be ready? I can't wait.
>>
>>62044206
>>62044423
>>62044414
>>62044437
Isn't Guile Scheme (used in Guix) an impure functional language if it's even a functional language at all?
>>
>>62047051
You can't do functional package management in a pure functional way without jumping through useless hoops.

Nix needs and uses state and side effects as well.
>>
>>62047641
>monads
>useless hoops
wew lad
>>
>>62046161
BROTHER
>>
>>62047756
> Implying I called monads useless
My statement was about functional package management, not functional programming in general.
>>
>>62048167
Your statement could easily applied to any task that requires side effects. Only the high level language needs to be functionally pure. The benefits of this are retained even if the code the compiler turns it into is not pure; it is a development tool.
>>
>>62047035
I've been using it as my main and only OS for the last year or so with no issues whatsoever.
>>
because im form over function, nerds
>>
>>62048167
Monads are a ridiculously powerful feature that can be used to do a ton of awesome shit. They are precisely the way that you handle state and side effects within pure functional programming. If you think they are just useless hoops then are you missing the forest for the trees.
>>
>>62047051
> if it's even a functional language at all?
It's literally lisp
>>
>>62048304
what is it. I always read you niggers talking about monads.
>hurr haskull mondas
>durr
>>
>>62048205
How well is the hardware/driver support? What do you run it on?
Is it at least on OpenBSD level, as they avoid to include binary blobs as well? Or is worse because on top of avoiding binary blobs the included code requires to be GPL compatible, which locks out some of the other oss licenses?
>>
So what exactly does this provide that Portage does not via USE flags, slots and an insane dependency resolver?
>>
>>62044206
Do you need to use emacs for it? This might be a stupid question but in the presentation of this os I saw how happy the dude was that the package manager was integrated into emacs.
>>
>>62048203
> Your statement could easily applied to any task that requires side effects
Fair enough, however I still wanted to apply it only to this situation, comparing it to Nix, they use state too.
It makes the job easier, purely functional is simply not required here, the underlying functional concept stays the same.

Scheme is practical and promotes functional programming, no need to be pure, that would only add overhead.

>>62048304
I explicitly said that I did NOT call monads useless, did you fall on your head?

Besides that the only sane language that comes to mind here is Haskell.
And ironically even though Monads ARE awesome, Haskell ecosystem is among the worst package/depency managements in existence, so I would not want any of that near such a project.
Nix for example solves quite a few Haskell problems, not the other way around.

> b-but sandboxes
Why they are not the default, I will never understand. Besides that they only dampen the pain.

Only recently did the cabal team start to implement nix-style builds, which will hopefully put an end to this stack/cabal/haskell-abomination platform bullshit.
>>
Every pm has explicit/dependent separation and version matching. What exactly does it bring to the table?
Unified system configuration and syntax sounds nice, too bad it's hideous JSON or lisp with unnecessary nesting. Separation of demanded from defaults also looks nice.
I saw it takes over VM orchestration, what else this config system takes control over? If I install it on laptop, how do I manage wifi across several AP, or VPNs? Or I still need to use NetworkManager's gui?
Any good articles/talks to learn about it more without installing it?
>>
>>62050238
I have it on both my desktop and a macbook.
Ships with basically all available free software drivers, so if you have like a Think Penguin WiFi dongle or whatever, it'll be plug and play.
As long as it's licensed as free software as per the FSF definition, it can be included - GPL compatibility is not a requirement.
Their official repos are still missing a few things I would like to have available, but nothing at all critical.
You're of course welcome to try and package and install any software yourself, but if you're trying to do something nonfree you will not get any help from the devs.
>>62050429
There is a wonderful Emacs interface for the package manager, but you're not at all required to use it.
Most people will never get their hands dirty building their own packages and stuff too though - Normal users will just find that they have a rock solid fully free OS. But unlike Debian, upgrading will never be a gamble that might break everything.
>>
>>62051407
> I saw it takes over VM orchestration, what else this config system takes control over?

You can still use qemu, kvm, and libvirt if you'd prefer. It does come with its own container system where you can use a separate config to quickly make one.

> If I install it on laptop, how do I manage wifi across several AP, or VPNs? Or I still need to use NetworkManager's gui?

You can use NetworkManager if you'd like. It's a single option to enable.

> Any good articles/talks to learn about it more without installing it?

You can install the package manager without installing the entire OS. It keeps everything separate from your base system.
>>
>>62042882
Because computers that we can build in this reality are not in any way functional, that's just a bloated abstraction and using anything "pure" in non-pure reality is just clipping your wings for no reason whatsoever.
>>
>>62053608
> better functionality
> clipping your wings
>>
>>62054057
It's not better, it's more "pure" aka "much less useful, but appealing to autists". Functional approach itself is extremely useful in many cases, especially in data crunching, but going pure is just... stupid pretending to be smart.
>>
>>62054145
>i have no idea what i'm talking about
>>
>>62054254
I am a simple person, if I hear that something is "purely functional", I shit on it. Pure-anything is a waste of time.
>>
>>62054328
You clearly are a simple person, if I hear that somebody is a simple person, I shit on him. Anything a simple person says is simply a waste of time.
>>
>>62054349
Yeah, I'm not an overcomplicated autist. My lambdas are here to solve tasks and make code simpler, not to boost my ego and waste time of people who will read stuff I write.
>>
To be honest, my rant has nothing to do with Nix, Nix is fine, it's just that I recently had to deal with some incomprehensible bloated purism faggotry in not even purely-functional language and am still mad at any forms of purism when it comes to programming.
>>62054417-fag
>>
>>62054621
Sounds like you're just a bucket of chum being thrown overboard.
>>
>>62054349
You clearly are a simple shit, if I hear that somebody is a simple shit, I shit on him. Anything a simple shit says is simply a waste of time.
>>
>>62055593
You clearly are a shity shit, if I hear that some shit is a shitty shit, I shit on shit. Anything a simple shit shits is simply a waste of shit.
>>
>>62055593
You clearly are a nigger, if I hear that somebody is a nigger, I run him over with my car. Anything a nigger does makes him glow in the dark.
>>
>>62042882
Too many nonwhite devs involved in the project. I'm not feeding those idiots' bastards.
>>
>>62050710
>Besides that the only sane language that comes to mind here is Haskell.
Nix uses the Nix Expression Language instead of Guile. Guix decided to use Guile because of a "not invented here" syndrome, not because it added any benefit.
>The Nix expression language is a pure, lazy, functional language.

I agree that Haskell's package management is shit tier and Nix does resolve a lot of said problems. However, the problems with Haskell's package management have nothing to do with monads or functional programming.

>purely functional is simply not required
Then you're missing the entire point of the Nix package manager. The underlying concept is entirely different without purity. Moreover, purity would remove all the overhead you introduce in having to debug impure garbage.
>>
>>62054621
How about you learn some formal logic and type theory, you fucking brainlet.
>>
>>62056494
> Nix uses the Nix Expression Language instead of Guile. Guix decided to use Guile because of a "not invented here" syndrome, not because it added any benefit.

I mean, Guile is pretty much Scheme. Couldn't you argue that the Nix language was unnecessary as Scheme was clearly a viable choice?
Thread posts: 67
Thread images: 4


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.