opqdonut 2017-01-26 02:45:36
merijn: browser?
merijn 2017-01-26 02:46:03
opqdonut: If need be
MarcelineVQ 2017-01-26 02:46:08
I'd probably try webkit yeah
merijn 2017-01-26 02:46:17
OpenGL/SDL makes the drawing easy, but the sliders a pain
merijn 2017-01-26 02:46:46
browser means I now have to figure out how to get my data onto a website and deal with webdev which I've avoided for years :p
merijn 2017-01-26 02:48:07
But if anyone has recommendations for Haskell tools to do it in the browser I'm open to recommendations
MarcelineVQ 2017-01-26 02:48:29
reflex-dom with webkit compiles to a native app or a website
MarcelineVQ 2017-01-26 02:48:35
it's pretty neat
ph88 2017-01-26 03:00:20
MarcelineVQ, megaparsec-5.1.2
jchia_1 2017-01-26 03:01:15
I'm using stack and need to do space profiling to track a space leak. There are options --library-profiling and --executable-profiling that I can use, but when I do that, stack rebuilds all the hackage packages, not just my own packages. Is there a way to target the profiling compilation to my own library & executable?
ph88 2017-01-26 03:01:55
jchia_1, this is normal that all packages are rebuild in debug mode .. but it should only happen once for each package
merijn 2017-01-26 03:01:58
MarcelineVQ: Looks like I need a lot of work with Nix and ghcjs to get that working :\
ph88 2017-01-26 03:02:11
merijn, purescript? :D
MarcelineVQ 2017-01-26 03:02:53
merijn: not a lot, there's a drop-in shell available with reflex iirc
MarcelineVQ 2017-01-26 03:02:56
you just load it and you're done
merijn 2017-01-26 03:04:32
MarcelineVQ: The reflex docs at least, are rather vague about what exactly they'll do and install...
codedmart 2017-01-26 03:04:35
I have a web server and I want to process a task in the background so it doesn't block, but I don't feel like I need a job queue system just yet. Would I use forkIO?
quchen 2017-01-26 03:04:45
jchia_1: sit it out :-/
quchen 2017-01-26 03:05:29
codedmart: If your task is supposed to finish eventually, use async
sshine 2017-01-26 03:05:34
I'm looking at Data.Trie, which works on ByteStrings, and I want to make a dictionary lookup on a list of unicode strings. something tells me it'd be really neat if there were a trie that supported Data.Text?
MarcelineVQ 2017-01-26 03:05:41
merijn: well you could scroll through the nix script if you're worried, I don't know nix stuff myself so that's about as helpful as I can be :o
codedmart 2017-01-26 03:05:47
quchen: Ah ok cool thanks!
quchen 2017-01-26 03:06:21
codedmart: Async should be our go-to library for anything concurrent, unless we have more specific requirements
quchen 2017-01-26 03:06:27
forkIO is not a good default for this
quchen 2017-01-26 03:06:41
(Async is a safe wrapper around forkIO for the most part)
merijn 2017-01-26 03:06:41
MarcelineVQ: I don't know Nix either and would prefer not too ;)
merijn 2017-01-26 03:07:32
sshine: I don't think there is, sadly, but you could just encode your Text to ByteString when inserting/retrieving?
MarcelineVQ 2017-01-26 03:07:43
Cale could possibly be more convincing about the subject since he uses that shell script daily
jchia_1 2017-01-26 03:08:37
Is it normal to get a segfault instead of the RTS complaining about running out of memory when there's a space leak?
MarcelineVQ 2017-01-26 03:08:37
Allthough, I think he's said in the past he leaves worrying about what nix is doing to others too :>
codedmart 2017-01-26 03:08:49
quchen: I am not really running two operations though. Just one but I don't want it to block.
sshine 2017-01-26 03:10:55
merijn, I thought that maybe I should try and make this package and find a mentor for assuring the quality.
raduom 2017-01-26 03:13:50
why does data TApp f a = MkTApp (f a) have hind (* -> *) -> * -> * ?
quchen 2017-01-26 03:15:14
:t \f a -> f a
lambdabot 2017-01-26 03:15:16
(t -> t1) -> t -> t1
quchen 2017-01-26 03:15:20
Same thing on the value level
quchen 2017-01-26 03:16:13
raduom: ^
codedmart 2017-01-26 03:16:39
Let's say I want to run a job queue. Any recommened existing packages to use?
quchen 2017-01-26 03:16:39
More verbosely, »data TApp f a« gives you »f : k« and »a : l«.
quchen 2017-01-26 03:17:15
raduom: Since »f a« has to kind-check, f has to have kind »l -> m«.
raduom 2017-01-26 03:17:22
quchen: i think i see it. since (f a) is on the right side it is assumed to be a function of type a -> ? and since it also has the a argument in the left it would be a function that takes one more type and results in the final thing.
ph88 2017-01-26 03:17:42
does anyone know why this parser code seems to loop forever? https://paste.fedoraproject.org/537002/48544022/
quchen 2017-01-26 03:17:48
So that gives us »TApp : (l -> m) -> l -> m
quchen 2017-01-26 03:17:50
«
quchen 2017-01-26 03:18:01
Since TApp should be an inhabited type, m has to be *
quchen 2017-01-26 03:18:12
This gives us TApp : (l -> *) -> l -> *
quchen 2017-01-26 03:18:29
If you enable PolyKinds, that's probably what GHC would infer on its own.
raduom 2017-01-26 03:19:00
yes. the polykinds paper puzzled me :)
raduom 2017-01-26 03:19:04
thanks. moving on.. :)
raduom 2017-01-26 03:20:13
inhabited type = have kind *?
merijn 2017-01-26 03:20:16
And not quite related to my original question: Suppose I have key-value pairs where my keys are multi-dimensional ranges, what would be a good data structure for storing them if I want to look them up by dimension?
merijn 2017-01-26 03:20:43
raduom: Yes, all types that are inhabited (i.e., have values), must be of kind *
raduom 2017-01-26 03:21:15
merijn: i know postgres uses GIST indexes for geographical data :D
quchen 2017-01-26 03:21:30
All inhabited types have kind *.
quchen 2017-01-26 03:21:44
Not all types of kind * are inhabited: Void has kind *, but no values.
merijn 2017-01-26 03:21:58
quchen: Eh, yes it does
quchen 2017-01-26 03:22:04
Noooo
merijn 2017-01-26 03:22:14
quchen: You forgot we don't live in total candyland :)
quchen 2017-01-26 03:22:28
Sure I do
raduom 2017-01-26 03:22:39
merijn bottom?
quchen 2017-01-26 03:22:50
Me and my morally correct star-kinded things
merijn 2017-01-26 03:22:55
raduom: Yes :)
raduom 2017-01-26 03:22:56
that came out bad :P
merijn 2017-01-26 03:42:47
I'm seriously considering just storing this in SQLite and maybe just writing SQL queries, that might be simpler...