-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
core library support #37
Comments
A couple comments:
|
I'm interested in giving one of these a shot, whichever you think is in the intersection of most useful and straight-forward. Any suggestions ? |
@martyall We recently released a newer version of However, we never went back and updated all the actual PureNix PureScript libraries to be based on the versions that are used for the actual PureScript-0.15 package set. All of our current PureNix libraries are based on PureScript libraries that are used with PureScript-0.14. I'm actually pretty surprised that the Quick Start instructions still work even when you use a 0.15 version of PureNix with the current set of libraries based on PureScript-0.14. So the most helpful thing would probably be to go through all the PureScript libraries that have already been ported to PureNix, and update their versions to the same versions used in the actual PureScript-0.15 package set. Although that would likely be quite annoying to do unless you automated or semi-automated the process! Other than that, the most helpful thing might be to try to work on some sort of Or, if you're coming from Haskell, one of the most interesting libraries to try to port to PureNix might be |
This issue is to track which core libraries have been ported to PureNix.
Done
These are libraries that have already been ported.
Todo
These are libraries that still need to be ported.
lists
andtransformers
packages being ported. See createpurescript-nix-buitins
library #40 (comment) for a little more info.)builtins.seq
function.)Won't Do / Can't Do
These are libraries that either can't be ported to PureNix, or don't make sense to port to PureNix.
assert
Nix does have an
assert
statement, but I'm not sure it would be able to be used with a similar API topurescript-assert
. Creating apurescript-nix-assert
library would likely be better.console
Nix doesn't have any way of writing arbitrary text to the console. There is the
builtins.trace
Nix function, but that could be wrapped up in it's own library.docs-search
I'm not sure what this is or how it would be related to PureNix.
effect
Nix doesn't have any way of doing arbitrary effects. In theory, we could have an
Effect
type for compatibility, but in practice we wouldn't be able to do anything interesting with it.edit: There was a little discussion in Add miraculix testing library temp-package-set#1 as to whether or not
purescript-effect
would make sense for PureNix. There are a couple good points in favor of havingpurescript-effect
.exceptions
Nix doesn't really have exceptions the same way JavaScript does. Nix does have the
builtins.abort
,assert
, andbuiltins.tryEval
functions, which may be able to be wrapped up in a nice library.gen
See the problem with
random
.minibench
I don't think Nix has any way of getting the current time (or at least to any precision that would be necessary for benchmarking).
parallel
Nix doesn't have any built-in way of running computations in parallel. It is possible we could support this same API in PureNix for compatibility, but it is likely we would only be able to run the computations sequentially.
quickcheck
See the problem with
random
.random
As far as I know, Nix doesn't have any sort of random number generator. There is no way to generate random numbers.
edit: Thinking about this a little more, we could have
purescript-random
be a pseudorandom number generator (PRNG). All the random functions could just take a seed that has to be passed in. The seed would be the initial seed for the PRNG. This could be useful for people that are willing to pass in a random seed when callingnix-build
. This seems like a reasonable way to use libraries likepurescript-random
,purescript-gen
, andpurescript-quickcheck
.refs
Nix doesn't have any way of mutating values, so refs are not possible.
tailrec
Nix is lazy, so this sort of trampolining isn't necessary.
The text was updated successfully, but these errors were encountered: