depot/users/grfn/xanthous/package.yaml, branch refs/r/5288 monorepo for the virus lounge http://code.tvl.fyi/depot/atom?h=refs%2Fr%2F5288 2021-11-08T15:29:05+00:00 feat(gs/xanthous): Enable tasty-rerun 2021-11-08T15:29:05+00:00 Griffin Smith grfn@gws.fyi 2021-11-08T02:33:27+00:00 urn:sha1:5b4c4f070187e051049afd8e458793163b4919bb Rerunning only failed tests is nice! To use this, run `cabal new-run test -- --rerun` Change-Id: I9dc4d69749c3e3d5ba8d1661a2fdf73e49cd8ad5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3816 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> refactor(grfn/xanthous): avoid unnecessary recompilation 2021-09-11T16:00:12+00:00 sterni sternenseemann@systemli.org 2021-09-11T14:23:38+00:00 urn:sha1:2f750e4a14be68f275f6fe23995eb9a994e0f5de hpack is a bit dumb when generating the list of modules for a cabal file's component if multiple of them live in the same directory. Specifically it seems to assume that all modules in the source-dirs of a particular component are also necessary for its compilation. This is quite bad in the case of xanthous since both library and executable have source-dirs: src, so all modules will be compiled twice: Once for the library and then again for the executable despite it depending on the library (actually 4 times in total since we need to build a unprofiled and profiled object for each module…). To fix this we just move Main.hs into its own directory and change the executable's source-dirs, so hpack doesn't get confused anymore. Since all components now have their own source-dirs, unnecessary redundant compilation should be down to 0. The diff of the cabal file shows quite nicely how many module recompilation we've gotten rid of. Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: grfn <grfn@gws.fyi> feat(xanthous): Track the volume and density of item types 2021-06-23T21:52:08+00:00 Griffin Smith grfn@gws.fyi 2021-06-19T14:42:32+00:00 urn:sha1:8b97683f6ef53605130542ea6de1e587b353aa5b Allow the itemType raw to have density and volume fields, both of which represent *intervals* of both density and volume (because both can hypothetically vary a bit). The idea here is that when we're making an *instance* of one of these items, we pick a random value in the range. Lots of stuff in this commit is datatype and typeclass instances to support things like intervals being fields on datatypes that get serialized to saved games - including a manual definition of Ord for Item since Ord isn't well-defined for intervals Change-Id: Ia088f2f75cdce9d00560297e5c269e3310b85bc3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3225 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI feat(xanthous): Add a generator for random english syllables 2021-06-13T01:24:47+00:00 Griffin Smith grfn@gws.fyi 2021-06-13T01:11:58+00:00 urn:sha1:2cfe4069bb9b46778d737f5ca535edcb9993f356 Add a new "speech" generator module, with the beginnings of the vague definition of the phonotactics of the language (there's one in here for English based on the wikipedia article for English phonology, but it's less than ideal as it has generated words like "sprurlkt") and the ability to generate random syllables of a language by picking an onset, nucleus, and coda from the list for that language (within a range of the number of allowed of each syllable part). This will be used down the road to automatically generate utterances from various non-english-speaking creatures (so the accuracy is less important, just that it "feels real"). Change-Id: I7b81375ec595239c05c5c800cbde1a2a900e38ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/3202 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI feat(xanthous): Memoize characterVisiblePositions 2021-06-12T18:57:52+00:00 Griffin Smith grfn@gws.fyi 2021-06-12T18:41:24+00:00 urn:sha1:c19e3dae5f6087c7e446c6be620c370d9957cf7c Memoize the return value of characterVisiblePositions to a new, semi-abstracted "memo" field on the GameState, recalcuclated if the character position ever changes. I'm 90% sure that the perf issues we were encountering were actually caused by characterVisiblePositions getting called once for *every tile* on draw, but this slightly larger change also makes the game perform relatively-usably again. Since this is only recalculated if the character position changes, if we ever get non-transparent entities moving around without the characters influence (maybe something building or knocking down walls?) we'll have an issue there where the vision won't be updated as a result of those changes if they happen while the character is taking a non-moving action - but we can cross that bridge when we come to it. Change-Id: I3fc745ddf0014d6f164f735ad7e5080da779b92a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3185 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI refactor(users/glittershark): Rename to grfn 2021-04-12T14:45:51+00:00 Griffin Smith grfn@gws.fyi 2021-04-11T21:53:27+00:00 urn:sha1:6266c5d32f9ff651fcfc3a4cc0c68e89da56ca65 Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<feed xmlns="http://www.w3.org/2005/Atom">
<title>depot/users/grfn/xanthous/package.yaml, branch refs/r/5288</title>
<subtitle>monorepo for the virus lounge</subtitle>
<id>http://code.tvl.fyi/depot/atom?h=refs%2Fr%2F5288</id>
<link rel="self" href="http://code.tvl.fyi/depot/atom?h=refs%2Fr%2F5288"/>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/"/>
<updated>2021-11-08T15:29:05+00:00</updated>
<entry>
<title>feat(gs/xanthous): Enable tasty-rerun</title>
<updated>2021-11-08T15:29:05+00:00</updated>
<author>
<name>Griffin Smith</name>
<email>grfn@gws.fyi</email>
</author>
<published>2021-11-08T02:33:27+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=5b4c4f070187e051049afd8e458793163b4919bb"/>
<id>urn:sha1:5b4c4f070187e051049afd8e458793163b4919bb</id>
<content type="text"> Rerunning only failed tests is nice! To use this, run `cabal new-run test -- --rerun` Change-Id: I9dc4d69749c3e3d5ba8d1661a2fdf73e49cd8ad5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3816 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> </content>
</entry>
<entry>
<title>refactor(grfn/xanthous): avoid unnecessary recompilation</title>
<updated>2021-09-11T16:00:12+00:00</updated>
<author>
<name>sterni</name>
<email>sternenseemann@systemli.org</email>
</author>
<published>2021-09-11T14:23:38+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=2f750e4a14be68f275f6fe23995eb9a994e0f5de"/>
<id>urn:sha1:2f750e4a14be68f275f6fe23995eb9a994e0f5de</id>
<content type="text"> hpack is a bit dumb when generating the list of modules for a cabal file's component if multiple of them live in the same directory. Specifically it seems to assume that all modules in the source-dirs of a particular component are also necessary for its compilation. This is quite bad in the case of xanthous since both library and executable have source-dirs: src, so all modules will be compiled twice: Once for the library and then again for the executable despite it depending on the library (actually 4 times in total since we need to build a unprofiled and profiled object for each module…). To fix this we just move Main.hs into its own directory and change the executable's source-dirs, so hpack doesn't get confused anymore. Since all components now have their own source-dirs, unnecessary redundant compilation should be down to 0. The diff of the cabal file shows quite nicely how many module recompilation we've gotten rid of. Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: grfn <grfn@gws.fyi> </content>
</entry>
<entry>
<title>feat(xanthous): Track the volume and density of item types</title>
<updated>2021-06-23T21:52:08+00:00</updated>
<author>
<name>Griffin Smith</name>
<email>grfn@gws.fyi</email>
</author>
<published>2021-06-19T14:42:32+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=8b97683f6ef53605130542ea6de1e587b353aa5b"/>
<id>urn:sha1:8b97683f6ef53605130542ea6de1e587b353aa5b</id>
<content type="text"> Allow the itemType raw to have density and volume fields, both of which represent *intervals* of both density and volume (because both can hypothetically vary a bit). The idea here is that when we're making an *instance* of one of these items, we pick a random value in the range. Lots of stuff in this commit is datatype and typeclass instances to support things like intervals being fields on datatypes that get serialized to saved games - including a manual definition of Ord for Item since Ord isn't well-defined for intervals Change-Id: Ia088f2f75cdce9d00560297e5c269e3310b85bc3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3225 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI </content>
</entry>
<entry>
<title>feat(xanthous): Add a generator for random english syllables</title>
<updated>2021-06-13T01:24:47+00:00</updated>
<author>
<name>Griffin Smith</name>
<email>grfn@gws.fyi</email>
</author>
<published>2021-06-13T01:11:58+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=2cfe4069bb9b46778d737f5ca535edcb9993f356"/>
<id>urn:sha1:2cfe4069bb9b46778d737f5ca535edcb9993f356</id>
<content type="text"> Add a new "speech" generator module, with the beginnings of the vague definition of the phonotactics of the language (there's one in here for English based on the wikipedia article for English phonology, but it's less than ideal as it has generated words like "sprurlkt") and the ability to generate random syllables of a language by picking an onset, nucleus, and coda from the list for that language (within a range of the number of allowed of each syllable part). This will be used down the road to automatically generate utterances from various non-english-speaking creatures (so the accuracy is less important, just that it "feels real"). Change-Id: I7b81375ec595239c05c5c800cbde1a2a900e38ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/3202 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI </content>
</entry>
<entry>
<title>feat(xanthous): Memoize characterVisiblePositions</title>
<updated>2021-06-12T18:57:52+00:00</updated>
<author>
<name>Griffin Smith</name>
<email>grfn@gws.fyi</email>
</author>
<published>2021-06-12T18:41:24+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=c19e3dae5f6087c7e446c6be620c370d9957cf7c"/>
<id>urn:sha1:c19e3dae5f6087c7e446c6be620c370d9957cf7c</id>
<content type="text"> Memoize the return value of characterVisiblePositions to a new, semi-abstracted "memo" field on the GameState, recalcuclated if the character position ever changes. I'm 90% sure that the perf issues we were encountering were actually caused by characterVisiblePositions getting called once for *every tile* on draw, but this slightly larger change also makes the game perform relatively-usably again. Since this is only recalculated if the character position changes, if we ever get non-transparent entities moving around without the characters influence (maybe something building or knocking down walls?) we'll have an issue there where the vision won't be updated as a result of those changes if they happen while the character is taking a non-moving action - but we can cross that bridge when we come to it. Change-Id: I3fc745ddf0014d6f164f735ad7e5080da779b92a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3185 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI </content>
</entry>
<entry>
<title>refactor(users/glittershark): Rename to grfn</title>
<updated>2021-04-12T14:45:51+00:00</updated>
<author>
<name>Griffin Smith</name>
<email>grfn@gws.fyi</email>
</author>
<published>2021-04-11T21:53:27+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=6266c5d32f9ff651fcfc3a4cc0c68e89da56ca65"/>
<id>urn:sha1:6266c5d32f9ff651fcfc3a4cc0c68e89da56ca65</id>
<content type="text"> Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi> </content>
</entry>
</feed>