2023-09-08 00:00:24 +0200 | fendor | (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) (Remote host closed the connection) |
2023-09-08 00:01:16 +0200 | son0p | (~ff@186.121.39.74) |
2023-09-08 00:05:14 +0200 | immae | (~immae@2a01:4f8:141:53e7::) |
2023-09-08 00:05:14 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2023-09-08 00:06:35 +0200 | bratwurst | (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 258 seconds) |
2023-09-08 00:09:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 00:11:47 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) |
2023-09-08 00:24:36 +0200 | bjobjo | (~bjobjo@user/bjobjo) (Ping timeout: 258 seconds) |
2023-09-08 00:24:58 +0200 | bratwurst | (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) |
2023-09-08 00:31:22 +0200 | bjobjo | (~bjobjo@user/bjobjo) |
2023-09-08 00:32:12 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-09-08 00:35:48 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-09-08 00:37:26 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-09-08 00:40:18 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-09-08 00:44:13 +0200 | Pickchea | (~private@user/pickchea) |
2023-09-08 00:45:47 +0200 | JordiGH | (~jordi@user/jordigh) |
2023-09-08 00:46:12 +0200 | <JordiGH> | Anyone know the history of why records got called "records"? (say, why not a word like "structs"?) |
2023-09-08 00:46:18 +0200 | <JordiGH> | Did it come from ML? |
2023-09-08 00:46:25 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-09-08 00:50:48 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-09-08 00:51:34 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 244 seconds) |
2023-09-08 00:52:10 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-09-08 00:52:41 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) |
2023-09-08 00:52:54 +0200 | <Guest|3> | Hello, anyone here? |
2023-09-08 00:53:18 +0200 | <institor> | nope |
2023-09-08 00:53:55 +0200 | <Guest|3> | I need to make light and shadows simulation in haskell so i have a few questions |
2023-09-08 00:54:53 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-09-08 00:55:39 +0200 | <Guest|3> | https://pastebin.com/raw/6DS18y5g |
2023-09-08 01:01:27 +0200 | rune_ | (sid21167@id-21167.ilkley.irccloud.com) (Server closed connection) |
2023-09-08 01:01:34 +0200 | rune_ | (sid21167@id-21167.ilkley.irccloud.com) |
2023-09-08 01:02:09 +0200 | <int-e> | phew, it's a cellular automaton, not a raytracer |
2023-09-08 01:02:23 +0200 | <int-e> | (or is it) |
2023-09-08 01:03:06 +0200 | <Guest|3> | i would prefer not to use raytracing but i dont see a way around it |
2023-09-08 01:05:02 +0200 | <int-e> | Yeah I didn't read enough of the code :P |
2023-09-08 01:06:12 +0200 | <int-e> | But now I'm confused about how light is supposed to spread. So I'll ask whether you've considered using Data.Array or Data.Vector instead? replacing indexed elements in a list of lists is awkward. |
2023-09-08 01:08:23 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-09-08 01:09:04 +0200 | <Guest|3> | https://pastebin.com/raw/J2sQdicP |
2023-09-08 01:10:10 +0200 | <Guest|3> | https://pastebin.com/XF0XCLwg |
2023-09-08 01:10:11 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 246 seconds) |
2023-09-08 01:10:27 +0200 | edmundnoble_ | (sid229620@id-229620.helmsley.irccloud.com) (Server closed connection) |
2023-09-08 01:10:36 +0200 | edmundnoble_ | (sid229620@id-229620.helmsley.irccloud.com) |
2023-09-08 01:12:14 +0200 | <int-e> | So it's a limited distance flooding? A bit like this? http://paste.debian.net/1291314/ |
2023-09-08 01:13:47 +0200 | <Guest|3> | Yes, the provided code simulates a form of limited distance flooding for determining which points are illuminated by a light source and which are in shadow due to obstacles. It uses a ray-casting approach to check if a point on the grid is visible from the light source. If a ray from the light source to a point intersects with any obstacle before |
2023-09-08 01:13:48 +0200 | <Guest|3> | reaching that point, the point is considered to be in shadow. |
2023-09-08 01:14:11 +0200 | <int-e> | Which is a fairly standard breadth first search task unless the distance becomes very big. (Going breadth first allows you to enumerate each of the "illuminated" cells only once, and not care about the same cell arising from different paths) |
2023-09-08 01:14:31 +0200 | <Guest|3> | It doesn't take into account advanced lighting effects like reflections, refractions, or global illumination, but it provides a basic understanding of how light interacts with obstacles within a certain distance of the light source. |
2023-09-08 01:15:17 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-09-08 01:15:32 +0200 | <int-e> | It's not like rays at all, it's more like pouring sand into a maze and stop when it reaches a certain height. (sand tends to have a linear falloff that's the same in all directions) |
2023-09-08 01:15:52 +0200 | <institor> | what a great analogy |
2023-09-08 01:16:37 +0200 | <Guest|3> | This approach is conceptually similar to BFS, as you correctly pointed out, and it doesn't involve actual rays in the traditional sense. |
2023-09-08 01:16:38 +0200 | <Guest|3> | In this sand-filling approach, the illumination falls off linearly as you move away from the light source, and it's consistent in all directions, which is a simplified but effective way to model basic lighting and shadows within a bounded area. |
2023-09-08 01:16:38 +0200 | <Guest|3> | Thank you for clarifying, and I appreciate your correc |
2023-09-08 01:16:53 +0200 | <Guest|3> | correction |
2023-09-08 01:20:12 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-09-08 01:20:35 +0200 | <Guest|3> | Do you have any useful information i can use? |
2023-09-08 01:20:59 +0200 | <int-e> | Note that https://pastebin.com/raw/6DS18y5g is a depth first search... so while updating the grid as soon as you enter a cell avoids visiting the cell more than once during the search, you'll often arrive at a cell for the first time by a detour (go right, then up, then left, rather than going up directly) so the path lengths are not what you want. |
2023-09-08 01:21:28 +0200 | <int-e> | I have not tried to understand https://pastebin.com/raw/J2sQdicP |
2023-09-08 01:21:43 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 240 seconds) |
2023-09-08 01:22:07 +0200 | <Guest|3> | Yes i made few versions. Can you check 2nd one? |
2023-09-08 01:24:05 +0200 | <Guest|3> | Code 1 - Grid-based Light Simulation |
2023-09-08 01:24:06 +0200 | <Guest|3> | Functionality: |
2023-09-08 01:24:06 +0200 | <Guest|3> | This code simulates light spreading from a light source in a grid-based environment with obstacles (stones). |
2023-09-08 01:24:07 +0200 | <Guest|3> | It uses a 2D grid represented as a list of lists of characters (Grid) to model the environment. |
2023-09-08 01:24:07 +0200 | <Guest|3> | Obstacles are randomly placed in the grid, and the light spreads through the grid, marking illuminated areas with '*' characters. |
2023-09-08 01:24:08 +0200 | <Guest|3> | The grid is printed to the console to visualize the illuminated areas. |
2023-09-08 01:24:08 +0200 | <Guest|3> | Key Components: |
2023-09-08 01:24:09 +0200 | <Guest|3> | Grid data type: Represents the 2D grid. |
2023-09-08 01:24:09 +0200 | <Guest|3> | addObstacles function: Adds obstacles to the grid. |
2023-09-08 01:24:10 +0200 | <Guest|3> | replaceElement function: Replaces an element in the grid at a specified position. |
2023-09-08 01:24:10 +0200 | <Guest|3> | spreadLight function: Simulates the spreading of light from the source. |
2023-09-08 01:24:11 +0200 | <Guest|3> | main function: Orchestrates the entire simulation. |
2023-09-08 01:24:11 +0200 | <Guest|3> | Code 2 - Ray-based Light Simulation |
2023-09-08 01:24:12 +0200 | <Guest|3> | Functionality: |
2023-09-08 01:24:12 +0200 | <Guest|3> | This code simulates light propagation from a light source to obstacles using rays and checks for intersections with obstacles. |
2023-09-08 01:24:13 +0200 | <Guest|3> | It uses a grid of points (grid) and calculates whether each point is illuminated by the given light source. |
2023-09-08 01:24:13 +0200 | <Guest|3> | The illuminated areas are represented with spaces (' ') in the output. |
2023-09-08 01:24:14 +0200 | <Guest|3> | Key Components: |
2023-09-08 01:24:55 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 01:25:47 +0200 | <Guest|3> | the comparison provided is generated by an AI based on the code snippets provided |
2023-09-08 01:26:01 +0200 | <int-e> | So you're actually intersecting lines and circles there |
2023-09-08 01:26:37 +0200 | <Guest|3> | yes |
2023-09-08 01:27:05 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Ping timeout: 258 seconds) |
2023-09-08 01:27:27 +0200 | <int-e> | I'm not going to check the math but it's not enough for the ray to intersect the circle... you also have to check whether you've reached the circle. |
2023-09-08 01:27:29 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 01:27:51 +0200 | xff0x | (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b) (Ping timeout: 258 seconds) |
2023-09-08 01:28:25 +0200 | <Guest|3> | Yes that check is essential. |
2023-09-08 01:28:47 +0200 | <Guest|3> | https://pastebin.com/XF0XCLwg ive added some comments here |
2023-09-08 01:29:13 +0200 | <int-e> | oh it's up there in illuminate... hmm. |
2023-09-08 01:29:43 +0200 | <Guest|3> | indeed |
2023-09-08 01:29:56 +0200 | xff0x | (~xff0x@178.255.149.135) |
2023-09-08 01:33:01 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds) |
2023-09-08 01:34:05 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Read error: Connection reset by peer) |
2023-09-08 01:34:27 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) |
2023-09-08 01:34:28 +0200 | <Guest|3> | So what do you think |
2023-09-08 01:34:50 +0200 | Lears | (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
2023-09-08 01:34:54 +0200 | <int-e> | https://en.wikipedia.org/wiki/File:Power_point_simple.svg ... note how the tangent is shorter than the distance to the center? |
2023-09-08 01:35:04 +0200 | [Leary] | (~Leary]@user/Leary/x-0910699) |
2023-09-08 01:35:07 +0200 | <int-e> | and how do you know whether the circle is in front of you or behind you? |
2023-09-08 01:35:39 +0200 | <int-e> | I won't work out any formulas for this. |
2023-09-08 01:35:47 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 245 seconds) |
2023-09-08 01:36:14 +0200 | <int-e> | Note also that the ray could potentially start inside an obstacle, or that the target could be inside an obstacle. |
2023-09-08 01:37:35 +0200 | kaskal | (~kaskal@213-147-167-98.nat.highway.webapn.at) (Server closed connection) |
2023-09-08 01:38:18 +0200 | <Guest|3> | The function isIntersection checks whether the ray intersects with an obstacle |
2023-09-08 01:39:19 +0200 | <int-e> | I rather suspect it checks the whole line, not just a ray. |
2023-09-08 01:39:57 +0200 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 245 seconds) |
2023-09-08 01:40:44 +0200 | <Guest|3> | The provided code indeed checks the entire line segment between the light source and the target point, rather than just a single ray. |
2023-09-08 01:40:45 +0200 | <Guest|3> | In this code, the isIntersection function checks if the line segment between the light source and the target point intersects with an obstacle. It considers the entire line segment, not just a single ray, when determining if an intersection occurs. |
2023-09-08 01:41:59 +0200 | kaskal | (~kaskal@213-147-167-98.nat.highway.webapn.at) |
2023-09-08 01:42:10 +0200 | xff0x | (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b) |
2023-09-08 01:46:18 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 01:47:00 +0200 | <int-e> | it doesn't check a line segment, it checks the whole line (extended indefinitely at both ends) |
2023-09-08 01:52:32 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
2023-09-08 01:53:09 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2023-09-08 01:54:04 +0200 | <Guest|3> | Do i switch to python cuz of simplicity? |
2023-09-08 01:54:06 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-09-08 01:57:33 +0200 | <int-e> | Sure if you're more comfortable with that... the problem in this particular program seems to be figuring out the formulas; Haskell won't help you with that any more than any other language really. |
2023-09-08 02:01:34 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) (Quit: Connection closed) |
2023-09-08 02:04:33 +0200 | Guest12 | (~Guest12@187.83.249.216.dyn.smithville.net) |
2023-09-08 02:09:26 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 246 seconds) |
2023-09-08 02:09:33 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 246 seconds) |
2023-09-08 02:11:22 +0200 | qhong | (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) (Read error: Connection reset by peer) |
2023-09-08 02:11:57 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-09-08 02:12:03 +0200 | apteryx | (~maxim@dsl-159-106.b2b2c.ca) (Ping timeout: 246 seconds) |
2023-09-08 02:12:04 +0200 | cafkafk_ | (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
2023-09-08 02:23:56 +0200 | Guest12 | (~Guest12@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
2023-09-08 02:27:16 +0200 | stites | (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242) (Read error: Connection reset by peer) |
2023-09-08 02:27:37 +0200 | stites | (~stites@130.44.147.204) |
2023-09-08 02:27:52 +0200 | cafkafk_ | (~cafkafk@fsf/member/cafkafk) |
2023-09-08 02:30:36 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 246 seconds) |
2023-09-08 02:31:13 +0200 | bratwurst | (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 240 seconds) |
2023-09-08 02:33:10 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 02:34:00 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 255 seconds) |
2023-09-08 02:35:54 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-09-08 02:35:59 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2023-09-08 02:36:05 +0200 | califax_ | (~califax@user/califx) |
2023-09-08 02:37:14 +0200 | yosef` | (~yosef`@user/yosef/x-2947716) |
2023-09-08 02:37:22 +0200 | califax_ | califax |
2023-09-08 02:42:20 +0200 | YoungFrog | (~youngfrog@2a02:a03f:ca07:f900:fffe:2aed:9333:96be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2023-09-08 02:42:41 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2023-09-08 02:49:09 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) |
2023-09-08 02:53:57 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) |
2023-09-08 02:54:00 +0200 | <Guest|3> | Hello me again with light and shadows! |
2023-09-08 02:54:13 +0200 | <Guest|3> | [1 of 1] Compiling Main ( main.hs, main.o ) |
2023-09-08 02:54:14 +0200 | <Guest|3> | main.hs:1:1: error:Could not find module System.Random' |
2023-09-08 02:54:14 +0200 | <Guest|3> | Use -v (or :set -v` in ghci) to see a list of the files searched for. |
2023-09-08 02:54:15 +0200 | <Guest|3> | | |
2023-09-08 02:54:15 +0200 | <Guest|3> | 1 | import System.Random |
2023-09-08 02:54:16 +0200 | <Guest|3> | | ^^^^^^^^^^^^^^^^^^^^ |
2023-09-08 02:54:16 +0200 | <Guest|3> | Trying to run a code |
2023-09-08 02:54:17 +0200 | <Guest|3> | please help |
2023-09-08 02:56:23 +0200 | <yushyin> | it's a module from the random package |
2023-09-08 02:56:38 +0200 | <Guest|3> | import System.Random |
2023-09-08 02:56:38 +0200 | <Guest|3> | -- Define a type alias for the grid as a 2D list of characters |
2023-09-08 02:56:39 +0200 | <Guest|3> | type Grid = [[Char]] |
2023-09-08 02:56:39 +0200 | <Guest|3> | -- Define a data type for simulation parameters |
2023-09-08 02:56:40 +0200 | <Guest|3> | data SimulationParameters = SimulationParameters |
2023-09-08 02:56:40 +0200 | <Guest|3> | { simulationWidth :: Int -- Width of the simulation area |
2023-09-08 02:56:41 +0200 | <Guest|3> | , simulationHeight :: Int -- Height of the simulation area |
2023-09-08 02:56:41 +0200 | <Guest|3> | , gridWidth :: Int -- Width of the grid |
2023-09-08 02:56:42 +0200 | <Guest|3> | , gridHeight :: Int -- Height of the grid |
2023-09-08 02:56:42 +0200 | <Guest|3> | , lightIntensity :: Int -- Intensity of the light |
2023-09-08 02:56:43 +0200 | <Guest|3> | , numberOfObstacles :: Int -- Number of obstacles |
2023-09-08 02:56:43 +0200 | <Guest|3> | } |
2023-09-08 02:56:44 +0200 | <Guest|3> | -- Initialize an empty grid filled with spaces |
2023-09-08 02:56:44 +0200 | <Guest|3> | emptyGrid :: Int -> Int -> Grid |
2023-09-08 02:56:45 +0200 | <Guest|3> | emptyGrid width height = replicate height (replicate width ' ') |
2023-09-08 02:56:45 +0200 | <Guest|3> | -- Define the position of the light source |
2023-09-08 02:56:46 +0200 | <Guest|3> | lightSource :: (Int, Int) |
2023-09-08 02:56:46 +0200 | <Guest|3> | lightSource = (5, 5) |
2023-09-08 02:56:47 +0200 | sinbad | (~sinbad@user/sinbad) (Quit: Leaving.) |
2023-09-08 02:56:53 +0200 | <yushyin> | you would need to add this to your dependencies |
2023-09-08 02:56:57 +0200 | <Guest|3> | -- Function to replace an element at a specific position in the grid |
2023-09-08 02:56:58 +0200 | <Guest|3> | replaceElement :: Grid -> Int -> Int -> Char -> Grid |
2023-09-08 02:56:58 +0200 | <Guest|3> | replaceElement grid x y newElement = |
2023-09-08 02:56:59 +0200 | <Guest|3> | take y grid ++ |
2023-09-08 02:56:59 +0200 | <Guest|3> | [take x (grid !! y) ++ [newElement] ++ drop (x + 1) (grid !! y)] ++ |
2023-09-08 02:57:00 +0200 | <Guest|3> | drop (y + 1) grid |
2023-09-08 02:57:00 +0200 | <Guest|3> | -- Function to spread light from the source |
2023-09-08 02:57:01 +0200 | <Guest|3> | spreadLight :: Grid -> (Int, Int) -> Int -> Grid |
2023-09-08 02:57:01 +0200 | <Guest|3> | spreadLight grid _ 0 = grid |
2023-09-08 02:57:02 +0200 | <Guest|3> | spreadLight grid (x, y) intensity |
2023-09-08 02:57:02 +0200 | <Guest|3> | | x < 0 || x >= gridWidthParam || y < 0 || y >= gridHeightParam = grid |
2023-09-08 02:57:03 +0200 | <Guest|3> | | grid !! y !! x /= ' ' && grid !! y !! x /= '#' = grid |
2023-09-08 02:57:03 +0200 | <Guest|3> | | otherwise = |
2023-09-08 02:57:04 +0200 | <Guest|3> | let updatedGrid = replaceElement grid x y '*' -- Place light at (x, y) |
2023-09-08 02:57:04 +0200 | <Guest|3> | in foldl (\g (dx, dy) -> spreadLight g (x + dx, y + dy) (intensity - 1)) |
2023-09-08 02:57:05 +0200 | <Guest|3> | updatedGrid [(1, 0), (-1, 0), (0, 1), (0, -1)] -- Recursively spread light |
2023-09-08 02:57:05 +0200 | <Guest|3> | -- Function to round positions of objects in the grid with real numbers |
2023-09-08 02:57:06 +0200 | <Guest|3> | roundGridPositions :: Grid -> Grid |
2023-09-08 02:57:09 +0200 | <yushyin> | please use the paste service from the topic, lol |
2023-09-08 02:57:19 +0200 | <Guest|3> | where and how |
2023-09-08 02:57:20 +0200 | <Guest|3> | sorry it bugged out |
2023-09-08 02:57:59 +0200 | <Guest|3> | how do i add to my dependencies |
2023-09-08 02:58:10 +0200 | <yushyin> | "Paste code/errors: https://paste.tomsmeding.com " |
2023-09-08 02:59:44 +0200 | <yushyin> | https://cabal.readthedocs.io/en/3.4/getting-started.html#adding-dependencies here is how you do it with cabal |
2023-09-08 02:59:50 +0200 | <Guest|3> | https://paste.tomsmeding.com/1bXo7hqg/raw/1 |
2023-09-08 03:01:04 +0200 | EvanR | (~EvanR@user/evanr) |
2023-09-08 03:01:13 +0200 | <Guest|3> | what do i need to do to use online interpreter to test my code, since when i run the code that is error |
2023-09-08 03:04:36 +0200 | <institor> | if you need random access into the grid |
2023-09-08 03:04:45 +0200 | <institor> | don't use linked lists of linked lists |
2023-09-08 03:04:48 +0200 | <institor> | use data.vector |
2023-09-08 03:05:37 +0200 | <institor> | which has nicer facilities for updating/replacing elements anyway |
2023-09-08 03:06:40 +0200 | <institor> | but this probably doesn't matter |
2023-09-08 03:07:06 +0200 | <Guest|3> | yes but i will still need to import something |
2023-09-08 03:07:12 +0200 | <Guest|3> | i think thats the problem |
2023-09-08 03:07:17 +0200 | <Guest|3> | or is it in my code? |
2023-09-08 03:08:26 +0200 | <Axman6> | Hecate: I didn't see yaml-streamly, but it doesn't look like it solves any of the issues I have with the other libraries |
2023-09-08 03:08:52 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 255 seconds) |
2023-09-08 03:10:10 +0200 | <EvanR> | without knowing the context, I used Data.Vector to great effect for advent of code by using a cabal script (instead of a full cabal project) if you want to use that package for something quick and dirty |
2023-09-08 03:10:54 +0200 | <Axman6> | Guest|3: to import packages you need a cabal project (or stack I guess, but cabal is the lowest common denominator). you cab probably do something like cabal repl -b random RayBasedLightSimulation.hs without needing a cabal project though |
2023-09-08 03:12:32 +0200 | <Guest|3> | i'll try |
2023-09-08 03:13:48 +0200 | <Guest|3> | cabal repl -b random RayBasedLightSimulation.hs tried to run this but didnt work |
2023-09-08 03:14:02 +0200 | <Axman6> | "didn't work" |
2023-09-08 03:14:06 +0200 | <Axman6> | ok |
2023-09-08 03:14:12 +0200 | <Guest|3> | PS D:\haskel> cabal repl -b random RayBasedLightSimulation2 |
2023-09-08 03:14:13 +0200 | <Guest|3> | cabal-3.6.2.0.exe: Cannot open a repl for the package |
2023-09-08 03:14:13 +0200 | <Guest|3> | RayBasedLightSimulation2, it is not in this project (either directly or |
2023-09-08 03:14:14 +0200 | <Guest|3> | indirectly). If you want to add it to the project then edit the cabal.project |
2023-09-08 03:14:14 +0200 | <Guest|3> | file. |
2023-09-08 03:14:20 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-09-08 03:14:34 +0200 | <Axman6> | do not paste multiple lines in here please! you've been told at least once before |
2023-09-08 03:14:43 +0200 | <Guest|3> | sorry |
2023-09-08 03:15:26 +0200 | <Axman6> | try cabal repl -b random, and then :load RayBasedLightSimulation.hs inside ghci |
2023-09-08 03:17:05 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-09-08 03:17:05 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-09-08 03:17:05 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-09-08 03:19:39 +0200 | <Guest|3> | can i use https://www.tutorialspoint.com/compile_haskell_online.php this? |
2023-09-08 03:20:36 +0200 | <Axman6> | the general recommendation I've seen is to not use tutorialspoint at all, I think I read their tutorial forhaskell and it was incredibly bad, and frequently just plain wrong |
2023-09-08 03:20:59 +0200 | <Guest|3> | yes but i need online interpreter |
2023-09-08 03:21:40 +0200 | <Guest|3> | i just need to test this code if it works |
2023-09-08 03:21:47 +0200 | <Guest|3> | and i cant |
2023-09-08 03:23:08 +0200 | <Axman6> | have you tried https://play.haskell.org |
2023-09-08 03:23:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-09-08 03:24:02 +0200 | <Axman6> | looks like it works there (though you have an error in your code so it doesn't currently compile) |
2023-09-08 03:24:12 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 03:24:23 +0200 | <Guest|3> | yes i needed to know which error it was |
2023-09-08 03:24:30 +0200 | <Guest|3> | blindly i can't |
2023-09-08 03:24:34 +0200 | <Guest|3> | and time is of the essence |
2023-09-08 03:24:38 +0200 | <Axman6> | ... did you try it? |
2023-09-08 03:24:45 +0200 | <yushyin> | is this homework? |
2023-09-08 03:24:56 +0200 | <Guest|3> | yes homework |
2023-09-08 03:25:04 +0200 | <Axman6> | we can only help you so much if you are unwilling to do anything at all to help yourself |
2023-09-08 03:25:05 +0200 | <Guest|3> | u can call it that |
2023-09-08 03:25:13 +0200 | <Guest|3> | a job requirement |
2023-09-08 03:25:26 +0200 | <Guest|3> | im trying to help myself |
2023-09-08 03:25:30 +0200 | <Guest|3> | im stuck for 2 hours |
2023-09-08 03:25:43 +0200 | <Axman6> | then paste your code into play.haskell.org and hit run |
2023-09-08 03:25:44 +0200 | <Guest|3> | blindly trying to setup this official office laptop with no permissions |
2023-09-08 03:26:51 +0200 | <Guest|3> | https://pastebin.com/dXGJk0S3 |
2023-09-08 03:27:08 +0200 | <Guest|3> | idk how to fix this |
2023-09-08 03:28:04 +0200 | <Axman6> | Data.List.Split comes from the split package, which is probably not installed by default on any online code evaluator, it's not a particularly common package. writing chunksOf is quite simple though |
2023-09-08 03:29:21 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-09-08 03:30:06 +0200 | <institor> | @type chunksOf |
2023-09-08 03:30:07 +0200 | <lambdabot> | Int -> [e] -> [[e]] |
2023-09-08 03:30:27 +0200 | <Axman6> | @hoogle chunksOf |
2023-09-08 03:30:27 +0200 | <lambdabot> | Data.Sequence chunksOf :: Int -> Seq a -> Seq (Seq a) |
2023-09-08 03:30:28 +0200 | <lambdabot> | Data.Sequence.Internal chunksOf :: Int -> Seq a -> Seq (Seq a) |
2023-09-08 03:30:28 +0200 | <lambdabot> | Data.Text chunksOf :: Int -> Text -> [Text] |
2023-09-08 03:30:33 +0200 | <Axman6> | @more |
2023-09-08 03:30:38 +0200 | <Axman6> | :( |
2023-09-08 03:30:41 +0200 | <institor> | :chunksOf 1 [1..20] |
2023-09-08 03:30:46 +0200 | <institor> | @chunksOf 1 [1..20] |
2023-09-08 03:30:46 +0200 | <lambdabot> | Unknown command, try @list |
2023-09-08 03:30:47 +0200 | <institor> | @list |
2023-09-08 03:30:47 +0200 | <lambdabot> | What module? Try @listmodules for some ideas. |
2023-09-08 03:30:51 +0200 | <institor> | @listmodules |
2023-09-08 03:30:51 +0200 | <lambdabot> | activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search |
2023-09-08 03:30:51 +0200 | <lambdabot> | seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where |
2023-09-08 03:30:56 +0200 | <institor> | @eval chunksOf 1 [1..20] |
2023-09-08 03:31:11 +0200 | <Axman6> | > chunksOf 3 [1..20] |
2023-09-08 03:31:12 +0200 | <lambdabot> | [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18],[19,20]] |
2023-09-08 03:31:19 +0200 | <int-e> | institor: It's '> ' or "@run ' |
2023-09-08 03:31:31 +0200 | <int-e> | @help eval |
2023-09-08 03:31:32 +0200 | <lambdabot> | eval. Do nothing (perversely) |
2023-09-08 03:31:37 +0200 | <Guest|3> | https://pastebin.com/xQLfsbCN |
2023-09-08 03:31:47 +0200 | <int-e> | (I /assume/ that this clashed with another bot somewhere) |
2023-09-08 03:32:20 +0200 | <int-e> | > iterate (drop 3) [1..20] -- a start |
2023-09-08 03:32:23 +0200 | <lambdabot> | [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],[4,5,6,7,8,9,10,11,12,... |
2023-09-08 03:32:32 +0200 | <Guest|3> | i dont understand |
2023-09-08 03:32:34 +0200 | <int-e> | > iterate (drop 3) [1..4] -- a start |
2023-09-08 03:32:36 +0200 | <lambdabot> | [[1,2,3,4],[4],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[... |
2023-09-08 03:34:17 +0200 | <Guest|3> | Can somebody |
2023-09-08 03:34:23 +0200 | <Guest|3> | please help me fix this code https://pastebin.com/6dmGuH2G |
2023-09-08 03:35:32 +0200 | <Axman6> | not without knowing the errors we can't. |
2023-09-08 03:36:02 +0200 | <Guest|3> | https://pastebin.com/qeRQcM3Y |
2023-09-08 03:36:05 +0200 | <Guest|3> | errors |
2023-09-08 03:36:33 +0200 | <Axman6> | but if that's the same code you shared earlier, I showed you a) how to run it and b) what the errors are. did you read them? they were pretty clear about what was wrong |
2023-09-08 03:37:22 +0200 | <Guest|3> | you mean about cabal? |
2023-09-08 03:37:35 +0200 | <Axman6> | right, you're referencing variables that the function can't see, somehow you need to pass those to it - it looks like they are contained the Grid type? |
2023-09-08 03:37:50 +0200 | <Axman6> | no, i mean play.haskell.org |
2023-09-08 03:38:04 +0200 | <Guest|3> | ok |
2023-09-08 03:38:22 +0200 | <Guest|3> | i was confused by lambdabot |
2023-09-08 03:38:56 +0200 | <Axman6> | oh I was wrong, they're not in Grid, I got mixed up with SimulationParameters |
2023-09-08 03:39:41 +0200 | <Guest|3> | i think i fixed it can you please check |
2023-09-08 03:39:57 +0200 | <Guest|3> | https://pastebin.com/RtdJfMgm |
2023-09-08 03:40:01 +0200 | <Axman6> | ... you can check it, paste it into play.haskell.org ad hit run, like I said |
2023-09-08 03:40:18 +0200 | <Guest|3> | it runs |
2023-09-08 03:40:21 +0200 | <Guest|3> | wow |
2023-09-08 03:40:27 +0200 | <Guest|3> | but does it do what its supposed to do |
2023-09-08 03:40:39 +0200 | <Axman6> | If you'd like our help, the least you can do is pay attention to the help we're giving you. |
2023-09-08 03:40:53 +0200 | <Axman6> | I have no idea, you tell us, it's not our code, nor our homework |
2023-09-08 03:41:12 +0200 | <Guest|3> | its not for homework its for job, people depend on the push |
2023-09-08 03:41:24 +0200 | <yushyin> | it runs, ship it! |
2023-09-08 03:41:34 +0200 | <Axman6> | ... then isn't it your job to check that it works? |
2023-09-08 03:41:47 +0200 | <monochrom> | Not my job. |
2023-09-08 03:41:58 +0200 | <Guest|3> | could you atleast comment on the code from a professional view |
2023-09-08 03:42:02 +0200 | <monochrom> | Well, unless I'm the one getting your pay. |
2023-09-08 03:42:04 +0200 | <Axman6> | We're here to help you figure out how to write haskell, not to do your job for you |
2023-09-08 03:42:24 +0200 | <Guest|3> | i never asked you to write a single line of code. |
2023-09-08 03:42:25 +0200 | <monochrom> | Homework likewise: Unless I'm the one getting your marks. |
2023-09-08 03:42:51 +0200 | <Axman6> | well, the first thing that jumps out is repeated ue of foo !! x !! y, this takes O(n) time, and doing it multiple times is not good |
2023-09-08 03:42:54 +0200 | <monochrom> | Well I don't have time figuring out what your code does either. I'm not getting paid here. |
2023-09-08 03:43:17 +0200 | <institor> | it sounds like an interview question |
2023-09-08 03:43:21 +0200 | <Guest|3> | its not about getting paid |
2023-09-08 03:43:33 +0200 | <monochrom> | It is always about getting paid, and it is always personal. |
2023-09-08 03:43:48 +0200 | <Guest|3> | well unfortunately im not getting paid for this work |
2023-09-08 03:43:55 +0200 | <monochrom> | There is no "free beer, free speech". There is only free market, free samples. |
2023-09-08 03:44:49 +0200 | <Axman6> | Guest|3: if this is for a job interview, then the point is to demonstrate your skills, not ours. |
2023-09-08 03:45:03 +0200 | <Axman6> | there's also a very good chance that whoever is interviewing you is also in this channel |
2023-09-08 03:45:28 +0200 | <Guest|3> | so when i presented you this code what did u notice, or what would you say to rate it |
2023-09-08 03:45:55 +0200 | <int-e> | I noticed the total lack of explanation of what it does, and what changed compared to the previous version. |
2023-09-08 03:46:07 +0200 | <Axman6> | And if I were hiring you, I wouldn't be impressed - it's fine to ask for help, as long as you're up front about the fact that someone else is judging _you_ on it. That means we can help yo in a way that the work is yours, not ours |
2023-09-08 03:46:27 +0200 | otto_s | (~user@p5de2f794.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-09-08 03:46:54 +0200 | <monochrom> | This is why I stick to the socratic method. It already makes that assumption. Always. |
2023-09-08 03:47:15 +0200 | <Guest|3> | i think i commented fair amount of code.. |
2023-09-08 03:47:15 +0200 | <Guest|3> | Also nobody wrote anything you keep reffering to ur help as you wrote a single line in my code. This is my work. Using templates and help from other sources is not my work? |
2023-09-08 03:47:40 +0200 | <institor> | everything is Microsoft's work in this brave new world |
2023-09-08 03:47:45 +0200 | <monochrom> | People need to get paid for code review, too. |
2023-09-08 03:47:48 +0200 | <institor> | copilot will write everything for you |
2023-09-08 03:48:01 +0200 | otto_s | (~user@p5de2ff65.dip0.t-ipconnect.de) |
2023-09-08 03:48:05 +0200 | <monochrom> | Also soon enough you will find that your managers write 0 lines of code and still get paid. |
2023-09-08 03:48:16 +0200 | <institor> | Guest|3: if you're not sure what it does maybe you should test it and find out |
2023-09-08 03:48:30 +0200 | <Axman6> | Guest|3: can you explain what every character of that code does? Based on the questions you've asked, i would suspect that there is code that you've found elsewhere, andprobably don't understand |
2023-09-08 03:48:38 +0200 | <institor> | if you don't understand if the test results are correct or not you should step back and ask if you understand the problem |
2023-09-08 03:49:04 +0200 | <institor> | there is a spurious do block in the code |
2023-09-08 03:49:11 +0200 | <institor> | should use a where or let clause instead |
2023-09-08 03:49:11 +0200 | <monochrom> | Ugh individual characters don't do anything.... |
2023-09-08 03:49:19 +0200 | <Guest|3> | yes but is the result satisfying, from a thrid person point of view. i made it on my vision |
2023-09-08 03:50:00 +0200 | <institor> | does this even typecheck |
2023-09-08 03:50:17 +0200 | <monochrom> | Yes, it already runs. |
2023-09-08 03:50:25 +0200 | <institor> | i guess lists are a monad... |
2023-09-08 03:50:37 +0200 | <monochrom> | Yes, I love abusing that too. :) |
2023-09-08 03:50:38 +0200 | <Axman6> | Guest|3: I've told you several things that I would say are not ideal with that code, but you seem to have ignored them. ?Do you want our help or to waste our time? |
2023-09-08 03:50:50 +0200 | <Guest|3> | i want ur help of course |
2023-09-08 03:51:00 +0200 | <institor> | man i should just open a consultancy |
2023-09-08 03:51:04 +0200 | <institor> | and start yelling at people for doing things wrong |
2023-09-08 03:51:08 +0200 | <institor> | that would be the life |
2023-09-08 03:51:14 +0200 | <monochrom> | and getting paid too |
2023-09-08 03:51:15 +0200 | <Guest|3> | i want to learn |
2023-09-08 03:51:17 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-09-08 03:51:17 +0200 | <Guest|3> | thats why im here |
2023-09-08 03:51:18 +0200 | <institor> | monochrom: exactly |
2023-09-08 03:51:33 +0200 | <monochrom> | This is why I took up the 2nd best: Teaching. >:) |
2023-09-08 03:52:07 +0200 | <monochrom> | Yell at wrong students and give them failing grades and saving the world and getting the... pay. >:) |
2023-09-08 03:52:14 +0200 | <Axman6> | spreadLight looks very inefficient to me, it traverses the data many times when it could probably be done with zome maps and zip/zipWiths |
2023-09-08 03:52:47 +0200 | <institor> | folding with a recursive call to something that is at least O(n)? |
2023-09-08 03:52:52 +0200 | <institor> | lol |
2023-09-08 03:53:07 +0200 | <monochrom> | I'm sure lots of people write like that in C, too. |
2023-09-08 03:53:08 +0200 | <Guest|3> | like this axman6? https://pastebin.com/F9qhjfBG |
2023-09-08 03:53:15 +0200 | <Axman6> | but that said, it's not a particularly easy thing to write, so can't blame someone who's relatively new to thelanguage |
2023-09-08 03:53:50 +0200 | <Axman6> | I don't know what you changed |
2023-09-08 03:54:03 +0200 | <monochrom> | I saw world-class programming competition contesters using linear search for priority queue extract-min for dijkstra. |
2023-09-08 03:54:30 +0200 | <monochrom> | err, contestants! I hate English. |
2023-09-08 03:54:40 +0200 | <Guest|3> | https://pastebin.com/Jdq9xfv6 |
2023-09-08 03:54:59 +0200 | <institor> | i probably couldn't implement a heap from memory |
2023-09-08 03:55:13 +0200 | <int-e> | monochrom: valid if it's fast enough for your purpose |
2023-09-08 03:55:19 +0200 | <int-e> | KISS and all that |
2023-09-08 03:55:34 +0200 | <monochrom> | Oh but they didn't write it off their head either. It is their on-paper code library they brought into the contest! |
2023-09-08 03:55:45 +0200 | <institor> | damn |
2023-09-08 03:55:52 +0200 | <institor> | i wish i could just bring my red-black tree implementation everywhere |
2023-09-08 03:55:53 +0200 | <institor> | that would be dope |
2023-09-08 03:55:58 +0200 | <Axman6> | Guest|3: do you know how much time updateElement takes to run? (not in terms of time but how expensive it is) |
2023-09-08 03:56:25 +0200 | <int-e> | monochrom: everything to save a few minutes or even seconds, eh |
2023-09-08 03:56:30 +0200 | <Axman6> | there's a fairly nice GADT red-black tree implementation right? |
2023-09-08 03:56:50 +0200 | aaronv | (~aaronv@user/aaronv) (Quit: Leaving) |
2023-09-08 03:56:55 +0200 | <institor> | yeah but i wanted to try to reimplement the algorithms given in CLRS |
2023-09-08 03:56:58 +0200 | <int-e> | monochrom: I imagine they also have a faster version (with more code) to copy if they need it? |
2023-09-08 03:56:59 +0200 | <institor> | and it's a good excuse for quickcheck too |
2023-09-08 03:57:03 +0200 | td_ | (~td@i53870915.versanet.de) (Ping timeout: 246 seconds) |
2023-09-08 03:57:10 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 03:57:12 +0200 | <monochrom> | I didn't find it. |
2023-09-08 03:57:16 +0200 | <int-e> | fun |
2023-09-08 03:57:31 +0200 | <monochrom> | But I can accept that it is fast enough "because C". |
2023-09-08 03:58:02 +0200 | <institor> | hasn't stroustrup gotten on stage and said that even if the asymptotics favour a linked list you should still use a vector anyway |
2023-09-08 03:58:04 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) (Quit: Connection closed) |
2023-09-08 03:58:06 +0200 | <institor> | for better spatial locality and caching |
2023-09-08 03:58:06 +0200 | <Axman6> | sorry, meant replaceElement |
2023-09-08 03:58:11 +0200 | int-e | tends to use Data.Map as a quick&dirty priority queue with minView for extracting the smallest element |
2023-09-08 03:58:16 +0200 | <institor> | sometimes the engineering just takes precedence |
2023-09-08 03:58:21 +0200 | <monochrom> | Typing in a real priority queue can waste time even if you just have to transcribe it from your papers. |
2023-09-08 03:58:50 +0200 | <int-e> | (there's a lot of caveats here... notably, avoiding duplicate keys) |
2023-09-08 03:58:59 +0200 | td_ | (~td@i5387090D.versanet.de) |
2023-09-08 03:59:11 +0200 | <int-e> | Actually, I lied. I use Data.Set (Prio, Value) |
2023-09-08 03:59:12 +0200 | <Axman6> | Data.Map.Map is a real priority queue |
2023-09-08 03:59:26 +0200 | <int-e> | Precisely because of the duplicate key problem. |
2023-09-08 03:59:30 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) |
2023-09-08 03:59:40 +0200 | <institor> | heh so |
2023-09-08 03:59:43 +0200 | <institor> | Data.Map is a balanced binary tree? |
2023-09-08 03:59:44 +0200 | <Guest|3> | so you all are teachers like Albert? |
2023-09-08 04:00:09 +0200 | <monochrom> | Yes Data.Map is a balanced binary search tree. |
2023-09-08 04:00:11 +0200 | <int-e> | institor: Yes. size-balanced |
2023-09-08 04:00:19 +0200 | <institor> | interesting.. |
2023-09-08 04:00:23 +0200 | <int-e> | (which is an implementation detail of course) |
2023-09-08 04:00:27 +0200 | <int-e> | Data.IntMap is a trie |
2023-09-08 04:00:43 +0200 | <institor> | don't maps/dictionaries as an abstract data type demand O(1) access though |
2023-09-08 04:00:53 +0200 | <institor> | well i guess there's collisions which could degenerate to O(n) |
2023-09-08 04:01:34 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 258 seconds) |
2023-09-08 04:01:35 +0200 | <Axman6> | Who's Albert? |
2023-09-08 04:01:35 +0200 | <institor> | well who's doing the "demanding" i guess... |
2023-09-08 04:01:43 +0200 | <int-e> | Well... no, the abstract interface generally just specifies behavior (input, output), not runtime. |
2023-09-08 04:01:58 +0200 | <Guest|3> | monochrom |
2023-09-08 04:02:03 +0200 | <monochrom> | Data structure academia accepts O(lg n). |
2023-09-08 04:02:18 +0200 | <institor> | i suppose it's the data structure that determines runtime |
2023-09-08 04:02:19 +0200 | <int-e> | And with persistent data structures, you often have O(log(n)) everything anyway. |
2023-09-08 04:02:20 +0200 | <monochrom> | To some extent they recognize that O(1) is impossible. |
2023-09-08 04:02:26 +0200 | <institor> | and association lists also constitute a dictionary... |
2023-09-08 04:02:59 +0200 | <int-e> | (well, Theta(log(n)) is what I really mean) |
2023-09-08 04:03:21 +0200 | xff0x | (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b) (Ping timeout: 246 seconds) |
2023-09-08 04:03:52 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 258 seconds) |
2023-09-08 04:04:43 +0200 | <Axman6> | RAM is ln n, so that's the bst we can do |
2023-09-08 04:05:18 +0200 | <int-e> | isn't the usualy model O(sqrt(n)) even |
2023-09-08 04:05:49 +0200 | <int-e> | (because ultimately it's about distance and energy dissipation) |
2023-09-08 04:11:16 +0200 | <int-e> | (Oh but I also wouldn't use a priority queue for a plain breadth first search.) |
2023-09-08 04:11:44 +0200 | <monochrom> | Right, that just needs an unpriority fifo queue. |
2023-09-08 04:12:23 +0200 | <int-e> | I generally just compute a level of the tree at a time, often as a plain list. |
2023-09-08 04:12:37 +0200 | <monochrom> | Iterative deepening? |
2023-09-08 04:13:07 +0200 | <int-e> | Nah, that would start from the root each time. |
2023-09-08 04:13:45 +0200 | <int-e> | I'm thinking of `next_level = curent_level >>= successors` (conceptually; there'll be code for weeding out duplicates somewhere) |
2023-09-08 04:15:38 +0200 | <int-e> | It's just what I feel is a sweet spot when trading between amount of code and wasted memory. |
2023-09-08 04:16:31 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 04:20:20 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection) |
2023-09-08 04:20:35 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) |
2023-09-08 04:22:20 +0200 | qhong | (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) |
2023-09-08 04:28:42 +0200 | todi | (~todi@p4fd1a685.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2023-09-08 04:28:47 +0200 | td_ | (~td@i5387090D.versanet.de) (Ping timeout: 258 seconds) |
2023-09-08 04:29:06 +0200 | todi | (~todi@p4fd1ab34.dip0.t-ipconnect.de) |
2023-09-08 04:29:28 +0200 | <EvanR> | ram access is O(log n), IntMap access is O(n) where n is the number of bits, and HashTables are somehow O(1) |
2023-09-08 04:29:44 +0200 | <EvanR> | clear as mud |
2023-09-08 04:30:02 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 04:30:37 +0200 | td_ | (~td@i53870905.versanet.de) |
2023-09-08 04:30:39 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 246 seconds) |
2023-09-08 04:31:00 +0200 | <EvanR> | with careful accounting of everything except hash tables, hash tables beat everything by a long shot |
2023-09-08 04:33:12 +0200 | Guest|3 | (~Guest|3@93-136-208-249.adsl.net.t-com.hr) (Quit: Connection closed) |
2023-09-08 04:33:47 +0200 | <EvanR> | I wonder what absurd more careful O rating hash tables actually would get awarded |
2023-09-08 04:36:03 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-09-08 04:38:31 +0200 | <int-e> | EvanR: it's far from a theoretical concern: https://en.wikipedia.org/wiki/Collision_attack#Hash_flooding |
2023-09-08 04:39:08 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 258 seconds) |
2023-09-08 04:39:28 +0200 | qhong | (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) (Remote host closed the connection) |
2023-09-08 04:40:29 +0200 | <EvanR> | oof |
2023-09-08 04:40:52 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-09-08 04:43:00 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-09-08 04:45:27 +0200 | <monochrom> | Claim O(0). >:) |
2023-09-08 04:46:01 +0200 | <int-e> | I always claim O(1). |
2023-09-08 04:46:21 +0200 | <int-e> | (Nobody will demonstrate that I'm wrong in my lifetime.) |
2023-09-08 04:47:17 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-09-08 04:48:09 +0200 | <int-e> | Though O(0) has merits. "Nobody will spend any time on this for large enough input size." |
2023-09-08 04:48:20 +0200 | <monochrom> | I do that too but only for "termination". >:) |
2023-09-08 04:48:28 +0200 | <monochrom> | Or rather, my thesis supervisor does. |
2023-09-08 04:51:03 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-09-08 04:53:09 +0200 | <EvanR> | clearly we've been thinking about it upside down the whole time, like temperature = 1/coldness |
2023-09-08 04:58:52 +0200 | <int-e> | is this #bad-physics now |
2023-09-08 05:01:06 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 05:02:31 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 258 seconds) |
2023-09-08 05:03:00 +0200 | <monochrom> | YES! We should measure algorithm speed instead of time: "O(n) time" should become "Ω(1/n)". Then we can state the Heisenbug Uncertainty Principle: Δspeed × Δoutput ≥ prank constant. |
2023-09-08 05:06:19 +0200 | litharge | (litharge@libera/bot/litharge) (Ping timeout: 600 seconds) |
2023-09-08 05:06:21 +0200 | <EvanR> | coldness makes sense when you have laser states that can all pile up in the highest energy state, becoming infinitely hot. But still can't go anywhere near absolute zero |
2023-09-08 05:07:00 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-09-08 05:08:07 +0200 | aaronv | (~aaronv@user/aaronv) (Quit: Leaving) |
2023-09-08 05:08:25 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 05:09:22 +0200 | <EvanR> | ok I messed that up because you can go higher than infinitely hot |
2023-09-08 05:10:02 +0200 | aforemny | (~aforemny@i59f516dc.versanet.de) (Ping timeout: 246 seconds) |
2023-09-08 05:10:17 +0200 | aforemny_ | (~aforemny@2001:9e8:6cd9:400:79dd:b9ae:d530:5eae) |
2023-09-08 05:11:36 +0200 | litharge | (litharge@libera/bot/litharge) |
2023-09-08 05:13:01 +0200 | merijn | (~merijn@088-129-128-083.dynamic.caiway.nl) |
2023-09-08 05:17:33 +0200 | merijn | (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds) |
2023-09-08 05:18:43 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2023-09-08 05:35:13 +0200 | ubert | (~Thunderbi@77.119.210.130.wireless.dyn.drei.com) (Ping timeout: 244 seconds) |
2023-09-08 05:46:17 +0200 | artem | (~artem@c-73-103-90-145.hsd1.in.comcast.net) |
2023-09-08 05:46:17 +0200 | ulysses4ever | (~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer) |
2023-09-08 05:55:08 +0200 | yosef` | (~yosef`@user/yosef/x-2947716) (Quit: Client closed) |
2023-09-08 05:55:35 +0200 | Feuermagier | Guest7409 |
2023-09-08 05:55:35 +0200 | Guest7409 | (~Feuermagi@user/feuermagier) (Killed (cadmium.libera.chat (Nickname regained by services))) |
2023-09-08 05:55:40 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-09-08 05:56:24 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 246 seconds) |
2023-09-08 05:56:57 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Max SendQ exceeded) |
2023-09-08 05:57:20 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-09-08 05:59:17 +0200 | litharge | (litharge@libera/bot/litharge) (Remote host closed the connection) |
2023-09-08 05:59:25 +0200 | litharge | (litharge@libera/bot/litharge) |
2023-09-08 06:06:43 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-09-08 06:07:57 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 06:09:18 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-09-08 06:24:03 +0200 | JordiGH | (~jordi@user/jordigh) (Ping timeout: 246 seconds) |
2023-09-08 06:30:36 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection) |
2023-09-08 06:31:39 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
2023-09-08 06:32:09 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Tschüss) |
2023-09-08 06:36:31 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-09-08 06:40:04 +0200 | talismanick | (~user@2601:204:ef80:2980::c39) |
2023-09-08 06:40:39 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 258 seconds) |
2023-09-08 06:41:07 +0200 | vglfr | (~vglfr@88.155.1.251) |
2023-09-08 06:42:55 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds) |
2023-09-08 06:44:12 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2023-09-08 06:44:34 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Quit: caryhartline) |
2023-09-08 06:44:52 +0200 | aforemny_ | (~aforemny@2001:9e8:6cd9:400:79dd:b9ae:d530:5eae) (Ping timeout: 258 seconds) |
2023-09-08 06:45:10 +0200 | EvanR | (~EvanR@user/evanr) |
2023-09-08 06:49:00 +0200 | acidjnk | (~acidjnk@p200300d6e7072f302de738f6d26fc170.dip0.t-ipconnect.de) |
2023-09-08 06:49:41 +0200 | nckx | (nckx@libera/staff/owl/nckx) (*.net *.split) |
2023-09-08 06:50:03 +0200 | nckx | (nckx@libera/staff/owl/nckx) |
2023-09-08 06:51:26 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-09-08 06:53:42 +0200 | vglfr | (~vglfr@88.155.1.251) (Ping timeout: 245 seconds) |
2023-09-08 06:54:09 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
2023-09-08 06:55:38 +0200 | aforemny | (~aforemny@i59F516ED.versanet.de) |
2023-09-08 06:57:00 +0200 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-09-08 07:07:34 +0200 | systemfault | (sid267009@id-267009.uxbridge.irccloud.com) (Changing host) |
2023-09-08 07:07:34 +0200 | systemfault | (sid267009@about/typescript/member/systemfault) |
2023-09-08 07:16:20 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 07:19:02 +0200 | jackneill__ | (~Jackneill@20014C4E1E101A0091C70064EC2E3AAF.dsl.pool.telekom.hu) |
2023-09-08 07:20:14 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-09-08 07:20:51 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-09-08 07:21:38 +0200 | qqq | (~qqq@92.43.167.61) |
2023-09-08 07:31:04 +0200 | Inst | (~Inst@120.244.192.250) |
2023-09-08 07:31:22 +0200 | <Inst> | stupid discovery of the day: you can inline type signatures in Haskell, at the cost of having to make everything into an explicit lambda |
2023-09-08 07:31:42 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-09-08 07:31:58 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Quit: caryhartline) |
2023-09-08 07:32:44 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-09-08 07:33:01 +0200 | <Inst> | https://cdn.discordapp.com/attachments/280036215477239809/1149577202833309736/image.png |
2023-09-08 07:33:24 +0200 | <Inst> | for someone who whines about style wars, I think the only thing I really have against maxigit wanting to adopt do bulleting for everything is that I didn't come up with it myself |
2023-09-08 07:33:32 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 246 seconds) |
2023-09-08 07:35:41 +0200 | talismanick | (~user@2601:204:ef80:2980::c39) (Remote host closed the connection) |
2023-09-08 07:40:13 +0200 | <EvanR> | Inst, or delete the type signature and read the docs to see what you wrote xD |
2023-09-08 07:40:48 +0200 | Pixi` | (~Pixi@user/pixi) |
2023-09-08 07:40:51 +0200 | <Inst> | top-level binding with no type signature |
2023-09-08 07:43:21 +0200 | <EvanR> | sure why not (because while write the code originally type signatures help the compiler help you write what you wanted, and make refactoring easier later) |
2023-09-08 07:43:25 +0200 | <EvanR> | writing* |
2023-09-08 07:43:41 +0200 | Pixi | (~Pixi@user/pixi) (Ping timeout: 246 seconds) |
2023-09-08 07:45:54 +0200 | <Inst> | I mean I'm the kind of guy who's done foo | bool1 = bar1 | bool2 = bar2 as an experiment |
2023-09-08 07:45:58 +0200 | <Inst> | which is perfectly valid Haskell |
2023-09-08 07:46:30 +0200 | <Axman6> | Is that supposed to be surprising? |
2023-09-08 07:48:13 +0200 | <Inst> | it's non-standard, I usually do foo arg1; | bool1 = bar1; | bool2 = bar2... |
2023-09-08 07:48:43 +0200 | <mauke> | that's a syntax error |
2023-09-08 07:49:12 +0200 | <Inst> | the first one or the second one? The second one is only a syntax error because of the ellipsis |
2023-09-08 07:49:24 +0200 | <mauke> | the second one is a syntax error because of the ; |
2023-09-08 07:49:30 +0200 | <int-e> | I suspect the `;` was just meant to delimit lines |
2023-09-08 07:49:42 +0200 | <int-e> | not sure, of course |
2023-09-08 07:49:51 +0200 | <Inst> | oh, yeah, it is a syntax error because of the offset rule |
2023-09-08 07:49:55 +0200 | michalz | (~michalz@185.246.207.221) |
2023-09-08 07:50:13 +0200 | <Inst> | since it's considered to start on a new line |
2023-09-08 07:50:27 +0200 | <Inst> | and then terminates the definition |
2023-09-08 07:50:40 +0200 | <int-e> | there's nothing wrong with foo | cond1 = val1 | cond2 = val2 except for readability if it's all on one line. |
2023-09-08 07:51:06 +0200 | <int-e> | (and worries about completeness of the conditions) |
2023-09-08 07:51:28 +0200 | <Inst> | i think it's valid if it's foo |... |
2023-09-08 07:51:40 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 248 seconds) |
2023-09-08 07:51:41 +0200 | <Inst> | i.e, it's in a where clause and you're defining a non-function value based on other data |
2023-09-08 07:52:41 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 07:53:00 +0200 | <mauke> | > let x | otherwise = "hi" in x |
2023-09-08 07:53:01 +0200 | <lambdabot> | "hi" |
2023-09-08 07:53:43 +0200 | Inst | (~Inst@120.244.192.250) (Remote host closed the connection) |
2023-09-08 07:54:02 +0200 | Inst | (~Inst@120.244.192.250) |
2023-09-08 08:00:00 +0200 | <Axman6> | > let foo x | otherwise /= x = "Oh" | otherwise = "Ok" in foo True |
2023-09-08 08:00:02 +0200 | <lambdabot> | "Ok" |
2023-09-08 08:00:39 +0200 | <int-e> | Oh ok! |
2023-09-08 08:01:49 +0200 | <Inst> | wait, you guys never try foo | bool1 = bar1 | bool2 = bar2 idioms? |
2023-09-08 08:01:51 +0200 | <int-e> | > let f otherwise | otherwise = 1 | True = 0 in map f [False ..] |
2023-09-08 08:01:54 +0200 | <Inst> | and I mean with proper whitespacing |
2023-09-08 08:01:54 +0200 | <lambdabot> | [0,1] |
2023-09-08 08:02:18 +0200 | <Axman6> | feature flags syntax |
2023-09-08 08:02:23 +0200 | <mauke> | > let foo x | False <- x = "Oh" | True = "Ok" in foo True |
2023-09-08 08:02:24 +0200 | <lambdabot> | "Ok" |
2023-09-08 08:02:31 +0200 | <int-e> | > [() | False] |
2023-09-08 08:02:32 +0200 | <lambdabot> | [] |
2023-09-08 08:02:40 +0200 | <int-e> | > [() | True] |
2023-09-08 08:02:42 +0200 | <lambdabot> | [()] |
2023-09-08 08:02:56 +0200 | <Axman6> | even more fun with monad comprehensions |
2023-09-08 08:02:59 +0200 | <Inst> | int-e: you knew that'd work, right? |
2023-09-08 08:03:15 +0200 | <Inst> | i was told [foo | bool] is fairly standard |
2023-09-08 08:03:22 +0200 | <int-e> | Inst: it is |
2023-09-08 08:03:29 +0200 | <int-e> | it's also surprisingly useful |
2023-09-08 08:03:46 +0200 | <Axman6> | it's quite a nice alternative to guard for lists |
2023-09-08 08:03:57 +0200 | <Inst> | i've used it with <> to append terms, although obv I freak out a little bit about performance |
2023-09-08 08:04:03 +0200 | <Inst> | then fold on the resulting list |
2023-09-08 08:04:13 +0200 | <int-e> | Inst: I don't know where you got the idea that foo | bool1 = bar1 | bool2 = bar2 would be uncommon... it's common, it's just a bit too much to put on a single line in clean code |
2023-09-08 08:04:28 +0200 | <mauke> | > let f xs | []<-xs = 0 | _ : xs<-xs = f xs + 1 in f "four" |
2023-09-08 08:04:29 +0200 | <lambdabot> | 4 |
2023-09-08 08:04:35 +0200 | mxs | (~mxs@user/mxs) (Server closed connection) |
2023-09-08 08:04:43 +0200 | mxs | (~mxs@user/mxs) |
2023-09-08 08:04:55 +0200 | <int-e> | pattern guards are a bit less common |
2023-09-08 08:04:58 +0200 | <Inst> | int-e: well, a production haskeller was impressed because he never thought about it, probably because it was smelly |
2023-09-08 08:05:18 +0200 | <Inst> | and was thinking about putting it out as an interview question (he doesn't do interviews) |
2023-09-08 08:06:34 +0200 | <int-e> | So a single person was unaware of that possibility... Haskell is a rich language, it's very easy to be unaware of chunks of the syntax without ever missing them. |
2023-09-08 08:06:36 +0200 | <Inst> | "which of the following is valid Haskell syntax? foo | bool1 = bar | bool2 = baz... foo, | bool1 = bar {- newline goes here -} {- lots of whitespacing goes here -}.. |
2023-09-08 08:06:52 +0200 | <Inst> | then standard put boolean guards on another line |
2023-09-08 08:07:00 +0200 | <mauke> | > let f xs | []<-xs = 0 | _ : (f->xs)<-xs = xs + 1 in f "four" |
2023-09-08 08:07:01 +0200 | <lambdabot> | 4 |
2023-09-08 08:07:05 +0200 | <Inst> | also I'd argue that it's smelly when you're doing a complex chain of conditionals |
2023-09-08 08:07:11 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-09-08 08:07:11 +0200 | <int-e> | even without extensions like view patterns |
2023-09-08 08:07:25 +0200 | <Inst> | if you're setting a variable based on inputs, and there's very few guards, it's not that bad |
2023-09-08 08:08:03 +0200 | <Inst> | where color | bool1 = Red | bool2 = Green | bool3 = Blue isn't bad, is it? |
2023-09-08 08:09:20 +0200 | <Axman6> | I feel like I'd opt for MultiwayIf there, but mostly because I wouldn't think of doing it that way |
2023-09-08 08:11:38 +0200 | <Axman6> | I've definitely seen where something | cond = a | cond2 = b | otherwise = c in real code though |
2023-09-08 08:12:12 +0200 | <Inst> | yeah tbh it's probably still less readable than XMultiWayIf |
2023-09-08 08:15:34 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-09-08 08:15:56 +0200 | <Inst> | or, rather in this case, just properly formatting the thing with a line extension + guards on separate lines |
2023-09-08 08:16:55 +0200 | <Inst> | the one thing i'd kill for syntactically, though, is being able to inline kind signatures in data declarations, though |
2023-09-08 08:17:12 +0200 | <Inst> | you can do that with the type ariables, but not with the base type constructor |
2023-09-08 08:19:20 +0200 | yosef` | (~yosef`@user/yosef/x-2947716) |
2023-09-08 08:19:23 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2023-09-08 08:20:48 +0200 | swamp_ | (~zmt00@user/zmt00) (Remote host closed the connection) |
2023-09-08 08:21:08 +0200 | swamp_ | (~zmt00@user/zmt00) |
2023-09-08 08:24:04 +0200 | noctux | (~noctux@user/noctux) (Server closed connection) |
2023-09-08 08:24:13 +0200 | noctux | (~noctux@user/noctux) |
2023-09-08 08:39:43 +0200 | aaronv | (~aaronv@user/aaronv) (Remote host closed the connection) |
2023-09-08 08:40:03 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 08:40:35 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) (Server closed connection) |
2023-09-08 08:40:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:eab7:f748:7d5f:b5dd) |
2023-09-08 08:40:44 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) |
2023-09-08 08:42:46 +0200 | chele | (~chele@user/chele) |
2023-09-08 08:46:57 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-09-08 08:46:57 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-09-08 08:47:37 +0200 | qhong | (~qhong@rescomp-21-400677.stanford.edu) |
2023-09-08 08:50:37 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2023-09-08 08:52:43 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-09-08 08:59:35 +0200 | <Axman6> | phma: wanna share that code again and we'll make it go superfast? |
2023-09-08 09:00:07 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 248 seconds) |
2023-09-08 09:05:08 +0200 | chromoblob | (~user@37.113.180.113) |
2023-09-08 09:05:09 +0200 | <Axman6> | phma: if you use vector, your bitRotate should look something like: rotBitcount src mult = generate (V.length src) (\i -> unsafeIndex src ((i+len-byte) `mod` len) `unsafeShiftL` bit .|. unsafeIndex src ((i+len-byte-1) `mod` len) `unsafeShiftR` (bit-8)). that shoudl eliminate most bounds checks since you're guaranteeing that you aren't creating indices and shifts out of range (you need to check that the changes I made are actually valid though...) |
2023-09-08 09:06:52 +0200 | <Axman6> | the benefit of using generate instead of listArray is that internally it can allocate a mutable array that is exactly the right size and then just write into it, to do that with listArray, it needs to traverse the list twice to find the length, then write each value |
2023-09-08 09:09:43 +0200 | chromoblob | (~user@37.113.180.113) (Ping timeout: 248 seconds) |
2023-09-08 09:09:55 +0200 | sinbad | (~sinbad@user/sinbad) |
2023-09-08 09:11:51 +0200 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
2023-09-08 09:13:21 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 245 seconds) |
2023-09-08 09:14:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 09:16:27 +0200 | <phma> | here's the repo, I just pushed it: https://github.com/phma/wring-twistree |
2023-09-08 09:17:45 +0200 | <phma> | I looked at Data.Bits and found there's (.>>.), which is shorter when infixed |
2023-09-08 09:18:07 +0200 | <int-e> | Axman6: Uhm listArray gets the array bounds as its first argument. There are reasons to prefer `vector` (better fusion, less overly abstraced indexing nonsense), but this double traversal story isn't true. |
2023-09-08 09:19:22 +0200 | <Axman6> | oh right, I forgot about that (: |
2023-09-08 09:19:46 +0200 | <int-e> | Vector.fromList is probably where that story comes from? |
2023-09-08 09:19:49 +0200 | <phma> | The S-boxes are a two-dimensional array (3×256). Would that be better as a vector? Or can a vector do that? It's computed once, when you key the Wring, then passed around. |
2023-09-08 09:19:54 +0200 | <Axman6> | yes, that's likely |
2023-09-08 09:20:10 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-09-08 09:20:37 +0200 | <Axman6> | vector only does one dimensional indices, but it's trivial to convert between the two (particularly when the smallest size is a power of two, you just need masks and shifts) |
2023-09-08 09:20:43 +0200 | Inst | (~Inst@120.244.192.250) (Ping timeout: 240 seconds) |
2023-09-08 09:21:24 +0200 | <Axman6> | or shift and .|. I guess, if you're going (x,y) -> index |
2023-09-08 09:21:42 +0200 | <phma> | Running the bytes through the s-boxes seems pretty fast. I think I'll leave it as is. |
2023-09-08 09:22:11 +0200 | <int-e> | "overly abstracted indexing" -- Ix looks like a great abstraction, and it is nice as far as convenience goes... but it also tends to be very slow. |
2023-09-08 09:23:05 +0200 | cafkafk_ | (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
2023-09-08 09:23:07 +0200 | <Axman6> | phma: if performance is a big concern, making sure you use functions like unsafeShifts and unsafeIndex makes a massive improvement (particularly if you then use the LLVM backend) |
2023-09-08 09:23:31 +0200 | <phma> | how do I use LLVM? |
2023-09-08 09:23:34 +0200 | cafkafk_ | (~cafkafk@fsf/member/cafkafk) |
2023-09-08 09:24:19 +0200 | <Axman6> | the GHC flag is -fllvm, I can't remember how you pass that to cabal/stack, you'd need to check their documentation. I think it's an example in the stack docs though |
2023-09-08 09:25:46 +0200 | <phma> | 16.5 s, not much change |
2023-09-08 09:26:03 +0200 | <phma> | now I'll try the unsafe shift |
2023-09-08 09:26:10 +0200 | <Axman6> | No, it's not a magic bullet, it can't make slow code fast magically sadly |
2023-09-08 09:26:14 +0200 | fendor | (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) |
2023-09-08 09:26:22 +0200 | <phma> | now one of the args to shift is negative, I'll have to flip it |
2023-09-08 09:27:31 +0200 | <Axman6> | you should also try using unsafeAt instead of (!) |
2023-09-08 09:27:59 +0200 | <Axman6> | if you know it'll always be negative, then just make it positive and shift the other direction |
2023-09-08 09:28:35 +0200 | <phma> | I'm running test.sh before and after to make sure that I don't mess up the algorithm with unsafe shifts |
2023-09-08 09:28:51 +0200 | <Axman6> | sensible :) |
2023-09-08 09:29:21 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection) |
2023-09-08 09:29:28 +0200 | <probie> | re LLVM: In my experience, about all you'll reliably get over NCG is better loop unrolling (and that only works if what you've written actually compiles to a loop) |
2023-09-08 09:29:50 +0200 | <Axman6> | generally when it comes to this sort of array and bit level stuff, it's best to make sure everything works using the safe functions (use shiftL or shiftR instead of shift, you shouldn't need a branch in there), then you can replace indexing and shifts with their unsafe versions |
2023-09-08 09:30:13 +0200 | <Axman6> | probie: this is very array heavy code so should be a good candidate for LLVM |
2023-09-08 09:30:57 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 09:31:47 +0200 | <phma> | does unsafe shift work right when you shift a byte by 8? |
2023-09-08 09:32:10 +0200 | <Axman6> | probably not |
2023-09-08 09:32:28 +0200 | <Axman6> | you need to make sure the inputs are between 0 and 7 |
2023-09-08 09:32:31 +0200 | <Axman6> | IIRC |
2023-09-08 09:32:44 +0200 | <phma> | the Rust code didn't work right, I had to make an if statement |
2023-09-08 09:33:32 +0200 | gmg | (~user@user/gehmehgeh) |
2023-09-08 09:33:56 +0200 | <Axman6> | if you're just doing it once per call to rotBitcount it should be fine, just make sure you compute your constants correctly so you can use the unsafe functions |
2023-09-08 09:33:59 +0200 | <int-e> | rust has dedicated bit rotation operation |
2023-09-08 09:34:18 +0200 | <Axman6> | this requires shifting in bits from a different word though |
2023-09-08 09:34:28 +0200 | <int-e> | ah |
2023-09-08 09:34:30 +0200 | mmhat | (~mmh@p200300f1c7178a9eee086bfffe095315.dip0.t-ipconnect.de) |
2023-09-08 09:34:35 +0200 | <Axman6> | so it's a global rotation, not rotation of a single byte |
2023-09-08 09:34:41 +0200 | mmhat | (~mmh@p200300f1c7178a9eee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-09-08 09:34:54 +0200 | <Axman6> | (for very small definitions of "global") |
2023-09-08 09:34:58 +0200 | <phma> | test passed so far |
2023-09-08 09:34:58 +0200 | <int-e> | yeah, missed that. |
2023-09-08 09:36:21 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-09-08 09:36:52 +0200 | <phma> | I'm doing it twice per byte (one left shift, one right shift). |
2023-09-08 09:37:48 +0200 | <phma> | rotBitcount rotates an entire buffer (1 MiB in the timed code) by its population count |
2023-09-08 09:38:09 +0200 | <Axman6> | you could split it into the case where the rotation is a multiple of 8, so you're just indexing into other indices, and then the more expensive one where you need to index into adjacent bytes and merge them |
2023-09-08 09:38:43 +0200 | <phma> | that's what the rust does |
2023-09-08 09:39:06 +0200 | <phma> | but the haskell is working properly, at least on this cpu |
2023-09-08 09:39:10 +0200 | <Axman6> | seems like a sensible performance improvement (which in the crypto world is generally regarded as A Bad Idea) |
2023-09-08 09:39:23 +0200 | <phma> | hein? |
2023-09-08 09:39:30 +0200 | <Axman6> | since a timing attack could tell when the pop count is a multiple of 8 very easily then |
2023-09-08 09:39:39 +0200 | <phma> | ah |
2023-09-08 09:40:29 +0200 | <phma> | test 524288, almost done |
2023-09-08 09:41:13 +0200 | shawwwn | (sid6132@id-6132.helmsley.irccloud.com) (Server closed connection) |
2023-09-08 09:41:22 +0200 | shawwwn | (sid6132@id-6132.helmsley.irccloud.com) |
2023-09-08 09:41:41 +0200 | <phma> | 15.2 s |
2023-09-08 09:41:57 +0200 | <Axman6> | keep in mind that a shift o 0 is fine but 8 is not, so for both shifts you can just apply `mod` 8 to always be between 0-7 |
2023-09-08 09:41:59 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-09-08 09:42:22 +0200 | <phma> | the pop count could be 0 mod 8 on one round, and 5 mod 8 the next |
2023-09-08 09:42:55 +0200 | <Axman6> | so you'd use (8 - n) `mod` 8 (or .&. 0x7) |
2023-09-08 09:42:57 +0200 | <phma> | changing shift by 8 to shift by 8 is wrong though, it'll combine two whole bytes into one output byte |
2023-09-08 09:43:15 +0200 | <phma> | I mean to shif by 0 |
2023-09-08 09:43:35 +0200 | AmyMalik | (ellenor@callbox.trd.is) (Server closed connection) |
2023-09-08 09:43:53 +0200 | <Axman6> | oh right, yeah a mask there would be useful |
2023-09-08 09:46:57 +0200 | <phma> | How can I tell if I specialized it to the right type? |
2023-09-08 09:47:09 +0200 | <Axman6> | or if you're on ARM64 you can just use the instructions that exist for exactly this sort of bit movement nonsense, like UBFX https://developer.arm.com/documentation/102374/0101/Data-processing---bit-manipulation?lang=en |
2023-09-08 09:47:26 +0200 | <Axman6> | what is 'it'? |
2023-09-08 09:47:36 +0200 | <phma> | rotBitcount |
2023-09-08 09:48:11 +0200 | mechap | (~mechap@user/mechap) |
2023-09-08 09:48:20 +0200 | <phma> | I'm on AMD |
2023-09-08 09:48:38 +0200 | <Axman6> | if you're using vector, there won't be any generic types, but if you're still using Array then, if it were me, i would add the SPECIALISE pragmas I know I want and make sure it has been |
2023-09-08 09:49:37 +0200 | <phma> | RBIT looks fun |
2023-09-08 09:50:01 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-09-08 09:50:06 +0200 | <Axman6> | yeah that was mostly a joke (thought I did have some plans to add optimisations to use those instructions when GHC saw patterns like x .&. ((1 `shiftL` len - 1) `shiftL` offset) `shiftR` offset |
2023-09-08 09:50:37 +0200 | <Axman6> | because that's exactly what UBFX does |
2023-09-08 09:52:21 +0200 | <phma> | is there a REV32? |
2023-09-08 09:52:48 +0200 | <phma> | the key schedule would use REV16 if it were on ARM |
2023-09-08 09:52:49 +0200 | <Axman6> | https://developer.arm.com/documentation/ddi0602/2022-09/Base-Instructions/REV32--Reverse-bytes-in-… |
2023-09-08 09:54:40 +0200 | <phma> | make sure it has been what? |
2023-09-08 09:55:57 +0200 | micro | (~micro@user/micro) (Ping timeout: 260 seconds) |
2023-09-08 09:56:58 +0200 | <phma> | Axman6: you seem to have broken off your sentence. What's the rest of the sentence? |
2023-09-08 09:57:33 +0200 | td_ | (~td@i53870905.versanet.de) (Quit: waking up from the american dream ...) |
2023-09-08 09:57:38 +0200 | <Axman6> | specialised |
2023-09-08 09:57:57 +0200 | <phma> | how do I do that? |
2023-09-08 09:57:59 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-09-08 09:58:43 +0200 | <Axman6> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/pragmas.html#specialize-pragma |
2023-09-08 09:59:18 +0200 | mechap | (~mechap@user/mechap) (Ping timeout: 246 seconds) |
2023-09-08 10:00:19 +0200 | <phma> | I think I have to specialize roundEncrypt and roundDecrypt too, those are what call rotBitcount |
2023-09-08 10:00:27 +0200 | She | (haveident@libera/staff/she/her) (Quit: Either upgrades, or the world's ending.) |
2023-09-08 10:01:30 +0200 | mechap | (~mechap@user/mechap) |
2023-09-08 10:03:15 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) |
2023-09-08 10:03:49 +0200 | micro | (~micro@user/micro) |
2023-09-08 10:07:20 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 10:07:32 +0200 | Ellenor | (ellenor@callbox.trd.is) |
2023-09-08 10:07:36 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 255 seconds) |
2023-09-08 10:07:51 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 10:07:57 +0200 | She | (haveident@libera/staff/she/her) |
2023-09-08 10:08:02 +0200 | CiaoSen | (~Jura@2a05:5800:296:dc00:664b:f0ff:fe37:9ef) |
2023-09-08 10:10:54 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-09-08 10:11:55 +0200 | <phma> | Time is now down to 10 s |
2023-09-08 10:12:07 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 248 seconds) |
2023-09-08 10:15:13 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-09-08 10:15:13 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-09-08 10:15:13 +0200 | finn_elija | FinnElija |
2023-09-08 10:15:43 +0200 | <phma> | safe or unsafe shift makes no difference to the run time |
2023-09-08 10:20:30 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 10:21:54 +0200 | aaronv | (~aaronv@user/aaronv) (Quit: Leaving) |
2023-09-08 10:22:47 +0200 | mechap | (~mechap@user/mechap) (Ping timeout: 248 seconds) |
2023-09-08 10:24:55 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 248 seconds) |
2023-09-08 10:28:43 +0200 | <phma> | rotBitcount now takes 9.6% of the time. |
2023-09-08 10:29:07 +0200 | td_ | (~td@i53870905.versanet.de) |
2023-09-08 10:29:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 10:31:57 +0200 | phma | (~phma@host-67-44-208-5.hnremote.net) (Read error: Connection reset by peer) |
2023-09-08 10:32:44 +0200 | shachaf | (~shachaf@user/shachaf) (Server closed connection) |
2023-09-08 10:32:47 +0200 | phma | (phma@2001:5b0:212a:b168:8a63:fd9c:4a28:c70e) |
2023-09-08 10:32:53 +0200 | shachaf | (~shachaf@user/shachaf) |
2023-09-08 10:37:00 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Quit: caryhartline) |
2023-09-08 10:49:31 +0200 | yosef` | (~yosef`@user/yosef/x-2947716) (Quit: Client closed) |
2023-09-08 10:49:36 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2023-09-08 10:57:30 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:53a2:cab9:2747:4277) |
2023-09-08 11:03:41 +0200 | ft | (~ft@p3e9bc1b6.dip0.t-ipconnect.de) (Quit: leaving) |
2023-09-08 11:05:08 +0200 | chromoblob | (~user@37.113.180.113) |
2023-09-08 11:09:55 +0200 | danza | (~francesco@151.57.215.192) |
2023-09-08 11:11:03 +0200 | chromoblob | (~user@37.113.180.113) (Ping timeout: 255 seconds) |
2023-09-08 11:12:23 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:53a2:cab9:2747:4277) (Ping timeout: 248 seconds) |
2023-09-08 11:14:10 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:bc24:1a8e:fab7:1bea) |
2023-09-08 11:17:11 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 11:20:32 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 11:21:03 +0200 | sm | (~sm@plaintextaccounting/sm) (Client Quit) |
2023-09-08 11:21:20 +0200 | danza | (~francesco@151.57.215.192) (Remote host closed the connection) |
2023-09-08 11:21:42 +0200 | danza | (~francesco@151.57.215.192) |
2023-09-08 11:22:28 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-09-08 11:22:31 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds) |
2023-09-08 11:24:09 +0200 | cawfee | (~root@2406:3003:2077:2758::babe) (Server closed connection) |
2023-09-08 11:24:28 +0200 | cawfee | (~root@2406:3003:2077:2758::babe) |
2023-09-08 11:26:15 +0200 | danza | (~francesco@151.57.215.192) (Ping timeout: 248 seconds) |
2023-09-08 11:27:15 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 11:27:16 +0200 | sm | (~sm@plaintextaccounting/sm) (Client Quit) |
2023-09-08 11:32:10 +0200 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.0.2) |
2023-09-08 11:32:38 +0200 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) |
2023-09-08 11:34:13 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) |
2023-09-08 11:38:43 +0200 | kuribas | (~user@ptr-17d51eo6k7h88xpr7hr.18120a2.ip6.access.telenet.be) |
2023-09-08 11:40:27 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) (Changing host) |
2023-09-08 11:40:27 +0200 | NinjaTrappeur | (~ninja@about/aquilenet/vodoo/NinjaTrappeur) |
2023-09-08 11:43:31 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) |
2023-09-08 11:49:24 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 11:53:46 +0200 | haveo | (~haveo@sl35.iuwt.fr) (Ping timeout: 245 seconds) |
2023-09-08 11:53:47 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-09-08 11:59:06 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 11:59:13 +0200 | driib | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2023-09-08 11:59:59 +0200 | driib | (~driib@vmi931078.contaboserver.net) |
2023-09-08 12:02:34 +0200 | caubert_ | (~caubert@user/caubert) (Quit: WeeChat 3.8) |
2023-09-08 12:02:45 +0200 | caubert | (~caubert@user/caubert) |
2023-09-08 12:05:39 +0200 | haveo | (~haveo@sl35.iuwt.fr) |
2023-09-08 12:08:04 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 12:09:10 +0200 | mysl_ | (~mysl@user/mysl) (Ping timeout: 258 seconds) |
2023-09-08 12:14:03 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 255 seconds) |
2023-09-08 12:17:18 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 12:17:52 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) |
2023-09-08 12:19:08 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 258 seconds) |
2023-09-08 12:20:04 +0200 | mysl_ | mysl |
2023-09-08 12:20:21 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds) |
2023-09-08 12:22:18 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 12:22:47 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:bc24:1a8e:fab7:1bea) (Ping timeout: 248 seconds) |
2023-09-08 12:23:00 +0200 | danza | (~francesco@151.57.215.192) |
2023-09-08 12:24:53 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 258 seconds) |
2023-09-08 12:27:19 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 12:28:07 +0200 | mysl_ | (~mysl@user/mysl) (Ping timeout: 248 seconds) |
2023-09-08 12:30:04 +0200 | danza | (~francesco@151.57.215.192) (Ping timeout: 248 seconds) |
2023-09-08 12:35:17 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 12:35:35 +0200 | CiaoSen | (~Jura@2a05:5800:296:dc00:664b:f0ff:fe37:9ef) (Ping timeout: 248 seconds) |
2023-09-08 12:37:14 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:77ed:664c:9083:f304) |
2023-09-08 12:37:16 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 258 seconds) |
2023-09-08 12:40:16 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 12:42:03 +0200 | mysl_ | (~mysl@user/mysl) (Ping timeout: 246 seconds) |
2023-09-08 12:42:53 +0200 | kuribas | (~user@ptr-17d51eo6k7h88xpr7hr.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2023-09-08 12:45:18 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 12:46:07 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 244 seconds) |
2023-09-08 12:49:13 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 12:49:35 +0200 | Flow | (~none@gentoo/developer/flow) (Server closed connection) |
2023-09-08 12:50:18 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 12:50:20 +0200 | Flow | (~none@gentoo/developer/flow) |
2023-09-08 12:51:02 +0200 | Ellenor | AmyMalik |
2023-09-08 12:51:03 +0200 | mysl_ | (~mysl@user/mysl) (Ping timeout: 248 seconds) |
2023-09-08 12:54:11 +0200 | cael__ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) |
2023-09-08 12:54:24 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Ping timeout: 258 seconds) |
2023-09-08 12:58:35 +0200 | Arsen | (arsen@gentoo/developer/managarm.dev.Arsen) (Server closed connection) |
2023-09-08 12:58:53 +0200 | Arsen | (arsen@gentoo/developer/managarm.dev.Arsen) |
2023-09-08 12:59:06 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 13:01:18 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 246 seconds) |
2023-09-08 13:04:39 +0200 | mysl | (~mysl@user/mysl) |
2023-09-08 13:07:03 +0200 | mysl_ | (~mysl@user/mysl) (Ping timeout: 258 seconds) |
2023-09-08 13:07:08 +0200 | Dykam | (Dykam@dykam.nl) (Server closed connection) |
2023-09-08 13:07:17 +0200 | Dykam | (Dykam@dykam.nl) |
2023-09-08 13:11:39 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds) |
2023-09-08 13:13:29 +0200 | mysl_ | (~mysl@user/mysl) |
2023-09-08 13:13:34 +0200 | shane | (~shane@ana.rch.ist) (Server closed connection) |
2023-09-08 13:13:42 +0200 | shane | (~shane@ana.rch.ist) |
2023-09-08 13:13:59 +0200 | mysl | (~mysl@user/mysl) (Ping timeout: 248 seconds) |
2023-09-08 13:16:40 +0200 | xff0x | (~xff0x@2405:6580:b080:900:775:bab:62a6:3a1d) |
2023-09-08 13:20:41 +0200 | JordiGH | (~jordi@user/jordigh) |
2023-09-08 13:25:44 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 13:27:00 +0200 | actioninja0 | (~actioninj@user/actioninja) |
2023-09-08 13:27:51 +0200 | actioninja | (~actioninj@user/actioninja) (Ping timeout: 255 seconds) |
2023-09-08 13:27:51 +0200 | actioninja0 | actioninja |
2023-09-08 13:27:54 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:77ed:664c:9083:f304) (Ping timeout: 246 seconds) |
2023-09-08 13:28:22 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:270d:fe5e:9aae:336d) |
2023-09-08 13:30:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 13:33:49 +0200 | kuribas | (~user@ptr-17d51eo6k7h88xpr7hr.18120a2.ip6.access.telenet.be) |
2023-09-08 13:34:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 13:35:12 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
2023-09-08 13:36:55 +0200 | ubert | (~Thunderbi@2001:871:263:95d1:270d:fe5e:9aae:336d) (Ping timeout: 248 seconds) |
2023-09-08 13:44:36 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 245 seconds) |
2023-09-08 13:54:12 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-09-08 13:54:33 +0200 | califax | (~califax@user/califx) |
2023-09-08 13:56:53 +0200 | JordiGH | (~jordi@user/jordigh) (Ping timeout: 258 seconds) |
2023-09-08 14:10:56 +0200 | artem | (~artem@c-73-103-90-145.hsd1.in.comcast.net) (Remote host closed the connection) |
2023-09-08 14:13:36 +0200 | JordiGH | (~jordi@user/jordigh) |
2023-09-08 14:17:35 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 258 seconds) |
2023-09-08 14:18:35 +0200 | ulysses4ever | (~artem@2601:249:4380:8950:f474:e3f8:9806:671) |
2023-09-08 14:22:19 +0200 | <sm> | @where+ hs-opt-handbook https://haskell.foundation/hs-opt-handbook.github.io/contents.html Haskell Optimization Handbook |
2023-09-08 14:22:19 +0200 | <lambdabot> | Done. |
2023-09-08 14:22:47 +0200 | <sm> | lambdabot seems to have had a few shots of espresso. Instant response now! |
2023-09-08 14:23:51 +0200 | stites | (~stites@130.44.147.204) (Ping timeout: 255 seconds) |
2023-09-08 14:24:40 +0200 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-09-08 14:24:51 +0200 | stites | (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242) |
2023-09-08 14:25:18 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 246 seconds) |
2023-09-08 14:25:37 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2023-09-08 14:29:52 +0200 | stites | (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242) (Read error: Connection reset by peer) |
2023-09-08 14:30:43 +0200 | SethTisue | (sid14912@id-14912.ilkley.irccloud.com) (Server closed connection) |
2023-09-08 14:30:53 +0200 | SethTisue | (sid14912@id-14912.ilkley.irccloud.com) |
2023-09-08 14:31:54 +0200 | stites | (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242) |
2023-09-08 14:33:01 +0200 | sinbad | (~sinbad@user/sinbad) (Quit: Leaving.) |
2023-09-08 14:33:16 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
2023-09-08 14:34:48 +0200 | ph88^ | (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2023-09-08 14:40:18 +0200 | stites | (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242) (Read error: Connection reset by peer) |
2023-09-08 14:40:43 +0200 | stites | (~stites@155.33.134.55) |
2023-09-08 14:51:15 +0200 | ubert | (~Thunderbi@178.115.49.191.wireless.dyn.drei.com) |
2023-09-08 14:55:13 +0200 | kuribas | (~user@ptr-17d51eo6k7h88xpr7hr.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-09-08 14:56:21 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Quit: WeeChat 4.0.3) |
2023-09-08 14:58:39 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-09-08 15:01:04 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-09-08 15:01:35 +0200 | it_ | (~quassel@v2202212189510211193.supersrv.de) (Quit: ,o>) |
2023-09-08 15:01:52 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-09-08 15:01:56 +0200 | it_ | (~quassel@v2202212189510211193.supersrv.de) |
2023-09-08 15:04:56 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 15:06:03 +0200 | sm | (~sm@plaintextaccounting/sm) (Client Quit) |
2023-09-08 15:06:19 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) |
2023-09-08 15:08:09 +0200 | mysl_ | mysl |
2023-09-08 15:13:10 +0200 | waleee | (~waleee@h-176-10-137-138.na.cust.bahnhof.se) |
2023-09-08 15:18:58 +0200 | koolazer | (~koo@user/koolazer) (Server closed connection) |
2023-09-08 15:19:03 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 15:20:09 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Read error: Connection reset by peer) |
2023-09-08 15:20:28 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) |
2023-09-08 15:24:07 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds) |
2023-09-08 15:24:26 +0200 | koolazer | (~koo@user/koolazer) |
2023-09-08 15:29:29 +0200 | texasmynsted | (~username@99.96.221.112) (Quit: WeeChat 3.0) |
2023-09-08 15:29:51 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-09-08 15:32:39 +0200 | JordiGH | (~jordi@user/jordigh) (Ping timeout: 248 seconds) |
2023-09-08 15:33:11 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-09-08 15:33:33 +0200 | libertyprime | (~libertypr@203.96.203.44) |
2023-09-08 15:33:40 +0200 | img | (~img@user/img) |
2023-09-08 15:33:49 +0200 | img | (~img@user/img) (Remote host closed the connection) |
2023-09-08 15:34:46 +0200 | img | (~img@user/img) |
2023-09-08 15:44:23 +0200 | stites | (~stites@155.33.134.55) (Read error: Connection reset by peer) |
2023-09-08 15:44:50 +0200 | it_ | (~quassel@v2202212189510211193.supersrv.de) (Quit: ,o>) |
2023-09-08 15:45:45 +0200 | it_ | (~quassel@v2202212189510211193.supersrv.de) |
2023-09-08 15:45:55 +0200 | stites | (~stites@155.33.134.55) |
2023-09-08 15:50:54 +0200 | ezzieygu1wuf | (~Unknown@user/ezzieyguywuf) |
2023-09-08 15:51:32 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 250 seconds) |
2023-09-08 15:53:08 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.0.4) |
2023-09-08 15:54:24 +0200 | Deide | (d0130db69a@user/deide) (Server closed connection) |
2023-09-08 16:01:11 +0200 | <ddellacosta> | I didn't realize how weird Alternative is until just now. I feel slightly dirty with how liberally I use guard everywhere. |
2023-09-08 16:01:49 +0200 | <[exa]> | wait Alternative is weird? |
2023-09-08 16:02:49 +0200 | <haskellbridge> | <jade> news to me as well |
2023-09-08 16:02:52 +0200 | <ddellacosta> | [exa]: I mean, from reading this https://wiki.haskell.org/Typeclassopedia#Failure_and_choice:_Alternative.2C_MonadPlus.2C_ArrowPlus it seems like there are few instances that work distinctly from each other, and the laws aren't super well thought out |
2023-09-08 16:03:33 +0200 | <ddellacosta> | and like, one thing in particular that I never considered was how the Monoid instance for Maybe works distinctly from Maybe's own Monoid instance, and that is distinct from how [] works w/Alternative |
2023-09-08 16:03:56 +0200 | <ddellacosta> | anyways, sorry just going down this rabbit hole and felt like expressing my surprise |
2023-09-08 16:04:42 +0200 | <[exa]> | ddellacosta: not a big problem, I just wanted to kinda distill what is the weird part |
2023-09-08 16:04:55 +0200 | <[exa]> | it's certainly surprising in cases, esp. with the left bias |
2023-09-08 16:05:15 +0200 | <[exa]> | (perhaps the story with Validation might shed some light on that) |
2023-09-08 16:06:06 +0200 | JordiGH | (~jordi@user/jordigh) |
2023-09-08 16:06:25 +0200 | <ddellacosta> | [exa]: yeah amusingly I came back to read that typeclassopedia entry after starting with trying to figure out how to silence a warning about this in PureScript: https://discourse.purescript.org/t/unbiasing-the-semigroup-instance-for-map/1935, and following an email thread from there |
2023-09-08 16:06:52 +0200 | <[exa]> | I'd say that people love to ignore the left bias :] |
2023-09-08 16:07:02 +0200 | <ddellacosta> | I'll take a look at Validation, also not something I've thought much about |
2023-09-08 16:07:04 +0200 | <[exa]> | btw what's the "Maybe's own Monoid instance" ? |
2023-09-08 16:07:07 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Ping timeout: 250 seconds) |
2023-09-08 16:07:37 +0200 | <ddellacosta> | [exa]: to quote directly from that link, as it's a bit buried: "[] is an instance, with empty given by the empty list, and (<|>) equal to (++). It is worth pointing out that this is identical to the Monoid instance for [a], whereas the Alternative and Monoid instances for Maybe are different: the Monoid instance for Maybe a requires a Monoid instance for a, and monoidally combines the contained |
2023-09-08 16:07:39 +0200 | <ddellacosta> | values when presented with two Justs." |
2023-09-08 16:08:10 +0200 | <ddellacosta> | puts it better than I can |
2023-09-08 16:08:49 +0200 | <[exa]> | ah, so it's about that Monoidal and Alternative behavior differs surprisingly |
2023-09-08 16:09:07 +0200 | <lortabac> | I've always found Alternative weird too |
2023-09-08 16:09:18 +0200 | <lortabac> | I think there has been a similar discussion in the past here |
2023-09-08 16:09:26 +0200 | <ddellacosta> | yeah I'm sure, I'm a bit late to the party lol |
2023-09-08 16:09:48 +0200 | <lortabac> | also what's the meaning of the IO instance? |
2023-09-08 16:09:49 +0200 | <ddellacosta> | it's interesting though, it is super useful regardless |
2023-09-08 16:10:03 +0200 | <ddellacosta> | oh yeah that's also funky. It feels a bit like every instance has its own set of laws |
2023-09-08 16:10:25 +0200 | <[exa]> | ddellacosta: IMO this is more of a Monoid problem. I always see that there's moreless one reasonable and simple way how to do the failure-avoiding instance for Maybe, but there are many ways how to combine Maybes monoidically while technically still being a perfect Monoid |
2023-09-08 16:10:29 +0200 | bcmiller | (~bm3719@66.42.95.185) (Server closed connection) |
2023-09-08 16:10:37 +0200 | <ddellacosta> | [exa]: that's a good point |
2023-09-08 16:10:39 +0200 | <[exa]> | (related: Sum, Product, Endo, ... marks) |
2023-09-08 16:10:39 +0200 | bcmiller | (~bm3719@66.42.95.185) |
2023-09-08 16:11:10 +0200 | <ddellacosta> | I mean, you could generalize that to the tradeoffs between modules and typeclasses, I suppose |
2023-09-08 16:11:18 +0200 | <[exa]> | I'm not sure if defaulting to the "natural" behavior in the default instance is somehow supported, like that it would be the only choice or so |
2023-09-08 16:11:26 +0200 | <ddellacosta> | but yeah Monoid suffers a lot from that |
2023-09-08 16:11:30 +0200 | <[exa]> | *only _other_ choice than what Alternative does |
2023-09-08 16:11:34 +0200 | <lortabac> | TBH I've never found Alternative very useful either |
2023-09-08 16:11:44 +0200 | <[exa]> | it helps here and there |
2023-09-08 16:11:48 +0200 | <[exa]> | parsecs |
2023-09-08 16:11:49 +0200 | <[exa]> | :] |
2023-09-08 16:12:09 +0200 | <lortabac> | except 'asum', we almost never write functions that are generic over Alternative |
2023-09-08 16:12:10 +0200 | <ddellacosta> | lortabac: it's somewhat trivial but I really like how much minor boilerplate the Maybe instance for guard can eliminate, and yeah for parsing it can be handy |
2023-09-08 16:12:51 +0200 | <lortabac> | ah yes, there is 'guard' |
2023-09-08 16:12:57 +0200 | <lortabac> | I hadn't thought about it |
2023-09-08 16:13:42 +0200 | <[exa]> | ddellacosta: kinda wondering, is there even any other valid implementation of the binary&nullary operation for Maybe that would not be isomorphic to either Alternative or Monoid as we have it now? |
2023-09-08 16:14:04 +0200 | <[exa]> | except ofc for 1] right bias instead of left 2] trivial case of "all is Nothing" |
2023-09-08 16:14:36 +0200 | <[exa]> | btw cf.: First, Last -- https://hackage.haskell.org/package/base-4.18.0.0/docs/Data-Monoid.html#t:First |
2023-09-08 16:15:02 +0200 | <ddellacosta> | I have no idea |
2023-09-08 16:15:25 +0200 | <ddellacosta> | interesting question tho |
2023-09-08 16:17:02 +0200 | <[exa]> | I'd say nope, you either don't bring in any assumptions and you can neither combine the valutes nor create a error-less Just; or you start bringing in typeclasses and Monoid assumption is a kindof natural one right |
2023-09-08 16:18:03 +0200 | <[exa]> | so perhaps the `Alternative a => Alternative (Maybe a)` would be missing, but that overlaps already |
2023-09-08 16:19:22 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-09-08 16:20:55 +0200 | <[exa]> | ddellacosta: and perhaps related, this was a really nice find for me once: https://hackage.haskell.org/package/lens-5.2.3/docs/Control-Lens-Combinators.html#v:ala |
2023-09-08 16:30:15 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Read error: Connection reset by peer) |
2023-09-08 16:30:24 +0200 | vglfr | (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
2023-09-08 16:31:35 +0200 | bwe | (~bwe@2a01:4f8:1c1c:4878::2) (Server closed connection) |
2023-09-08 16:31:43 +0200 | bwe | (~bwe@2a01:4f8:1c1c:4878::2) |
2023-09-08 16:31:51 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:eab7:f748:7d5f:b5dd) (Quit: WeeChat 2.8) |
2023-09-08 16:37:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 16:42:15 +0200 | <ddellacosta> | [exa]: thank you for that link! I swear I saw that function maybe in a puzzle game online a while back, randomly? ...and didn't follow up on it |
2023-09-08 16:43:37 +0200 | <ddellacosta> | I cannot for the life of me remember the link to that game though |
2023-09-08 16:49:18 +0200 | <ddellacosta> | and yeah that makes sense re: possible Monoid instances for that, I agree. Maybe's structure constrains the options pretty simply I guess huh |
2023-09-08 16:49:29 +0200 | ph88 | (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) |
2023-09-08 16:50:21 +0200 | fendor | (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) (Remote host closed the connection) |
2023-09-08 16:50:59 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2023-09-08 16:51:35 +0200 | cael__ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Ping timeout: 248 seconds) |
2023-09-08 16:51:51 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) |
2023-09-08 16:52:29 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 16:55:24 +0200 | <ph88> | how can i compile this? https://github.com/elaforge/fix-imports i only use stack normally |
2023-09-08 16:55:40 +0200 | acidjnk | (~acidjnk@p200300d6e7072f302de738f6d26fc170.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2023-09-08 16:58:03 +0200 | <albet70> | is Karp-Rabin related to Edmonds-Karp? |
2023-09-08 16:58:21 +0200 | <yushyin> | ph88: extra-deps: allows for git repos, i would assume |
2023-09-08 16:58:50 +0200 | <[exa]> | albet70: in which sense precisely? (50% of folks is shared! :D ) |
2023-09-08 16:59:42 +0200 | <[exa]> | ph88: the cabal.project is borked by user's local files, I guess you should open an issue or so |
2023-09-08 17:00:23 +0200 | <[exa]> | ph88: you might have luck by just removing this line and wishing that the other package exists https://github.com/elaforge/fix-imports/blob/master/cabal.project#L3 |
2023-09-08 17:01:46 +0200 | <ph88> | yushyin, [exa] i'm getting an error like this https://bpa.st/RK7VA [exa] i did your suggested change in the cabal file |
2023-09-08 17:02:11 +0200 | <albet70> | [exa] , I don't know, :) |
2023-09-08 17:02:20 +0200 | <[exa]> | ph88: why not compile just with `cabal run` ? |
2023-09-08 17:02:46 +0200 | <[exa]> | albet70: anyway rabin-karp is the hashy string search algorithm, and the other is afaik for maximum flows in networks, not very related imo |
2023-09-08 17:02:48 +0200 | <ph88> | [exa], i don't have cabal only stack |
2023-09-08 17:03:34 +0200 | <[exa]> | ph88: wait how come? (I didn't think that is possible) |
2023-09-08 17:05:20 +0200 | <ph88> | [exa], i don't know, i never installed it. I don't have it as a command on the CLI |
2023-09-08 17:05:28 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) |
2023-09-08 17:05:51 +0200 | <[exa]> | ph88: maybe try `stack exec cabal -- run` or so |
2023-09-08 17:06:00 +0200 | <ph88> | ok |
2023-09-08 17:06:45 +0200 | <[exa]> | ohyeah, here: https://docs.haskellstack.org/en/stable/faq/index.html#can-i-run-cabal-commands-inside-stack-exec |
2023-09-08 17:06:49 +0200 | <ph88> | Executable named cabal not found on path |
2023-09-08 17:07:00 +0200 | <ph88> | oh thanks for the link i will look |
2023-09-08 17:07:33 +0200 | <[exa]> | looks like I misplaced the -- |
2023-09-08 17:07:56 +0200 | She | (haveident@libera/staff/she/her) (Quit: Either upgrades, or the world's ending.) |
2023-09-08 17:07:57 +0200 | <[exa]> | anyway AFAIK stack must have a cabal binary stashed somewhere, at least internally, so it should work |
2023-09-08 17:08:04 +0200 | She | (haveident@libera/staff/she/her) |
2023-09-08 17:08:13 +0200 | <ph88> | stack exec cabal -- run |
2023-09-08 17:08:14 +0200 | <ph88> | stack exec -- cabal exec -- cabal run |
2023-09-08 17:08:19 +0200 | <ph88> | stack exec -- cabal run |
2023-09-08 17:08:29 +0200 | <ph88> | tried these 3 but i get the same: Executable named cabal not found on path |
2023-09-08 17:08:38 +0200 | <sclv> | stack doesn’t have a cabal binaru |
2023-09-08 17:08:38 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-09-08 17:08:46 +0200 | <sclv> | only links the lib |
2023-09-08 17:08:50 +0200 | <[exa]> | okay that explains it |
2023-09-08 17:09:05 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2023-09-08 17:11:17 +0200 | <ph88> | is there any other program that can remove unused imports ? |
2023-09-08 17:14:22 +0200 | <[exa]> | I just run the ghc with the warning and fix all warnings |
2023-09-08 17:14:26 +0200 | <[exa]> | and -Werror helps |
2023-09-08 17:14:41 +0200 | <sm> | stack doesn't use a cabal binary, it links to the Cabal library |
2023-09-08 17:15:44 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) |
2023-09-08 17:16:42 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-09-08 17:19:10 +0200 | <sm> | as was just said. dangit eyes, dangit crappy monitor.. |
2023-09-08 17:19:49 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 17:20:35 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Remote host closed the connection) |
2023-09-08 17:20:52 +0200 | <sm> | I tried building fix-imports with stack, it seems to have very constrained deps and it's hard to figure out the right resolver |
2023-09-08 17:20:59 +0200 | <sm> | but if you want a cabal binary, you could just install it |
2023-09-08 17:22:14 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2023-09-08 17:23:34 +0200 | <sm> | there's also https://hackage.haskell.org/package/hls-refine-imports-plugin |
2023-09-08 17:24:45 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-09-08 17:24:46 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 255 seconds) |
2023-09-08 17:25:04 +0200 | <sm> | and https://hackage.haskell.org/package/importify (2017) |
2023-09-08 17:29:03 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-09-08 17:29:06 +0200 | ph88^ | (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) |
2023-09-08 17:29:55 +0200 | sinbad | (~sinbad@user/sinbad) |
2023-09-08 17:31:56 +0200 | libertyprime | (~libertypr@203.96.203.44) (Ping timeout: 258 seconds) |
2023-09-08 17:38:44 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-09-08 17:38:46 +0200 | stites | (~stites@155.33.134.55) (Read error: Connection reset by peer) |
2023-09-08 17:39:11 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection) |
2023-09-08 17:39:26 +0200 | stites | (~stites@2607:fb90:ad60:c188:2612:e938:afc1:2f1e) |
2023-09-08 17:39:28 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-09-08 17:40:21 +0200 | stites | (~stites@2607:fb90:ad60:c188:2612:e938:afc1:2f1e) (Read error: Connection reset by peer) |
2023-09-08 17:40:43 +0200 | stites | (~stites@155.33.134.55) |
2023-09-08 17:45:27 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds) |
2023-09-08 17:48:45 +0200 | Inst | (~Inst@120.244.192.250) |
2023-09-08 17:49:16 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Tschüss) |
2023-09-08 17:50:14 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-09-08 17:51:07 +0200 | ft | (~ft@p4fc2ae5a.dip0.t-ipconnect.de) |
2023-09-08 18:00:19 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-09-08 18:10:11 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 18:10:34 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-09-08 18:14:43 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
2023-09-08 18:16:24 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-09-08 18:18:42 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-09-08 18:18:51 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 244 seconds) |
2023-09-08 18:19:28 +0200 | ubert | (~Thunderbi@178.115.49.191.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2023-09-08 18:20:59 +0200 | ph88^ | (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2023-09-08 18:23:14 +0200 | acidjnk | (~acidjnk@p200300d6e7072f30251e7d7a920dd919.dip0.t-ipconnect.de) |
2023-09-08 18:29:04 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 18:29:52 +0200 | <ph88> | anyone want to help with this parsing code? https://github.com/elaforge/fix-imports/pull/4 i'm not particularly familiar with the codebase |
2023-09-08 18:32:04 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 18:33:07 +0200 | <ph88> | sm, thanks importify looks good |
2023-09-08 18:33:27 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 248 seconds) |
2023-09-08 18:34:36 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2023-09-08 18:38:30 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-09-08 18:39:26 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 18:40:44 +0200 | <sm> | because it's six years old, you'll have to work harder to install it |
2023-09-08 18:49:27 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) |
2023-09-08 18:49:42 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) (Remote host closed the connection) |
2023-09-08 18:49:57 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) |
2023-09-08 18:50:56 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 18:52:42 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 246 seconds) |
2023-09-08 18:53:47 +0200 | <geekosaur> | @where+ rwh http://www.realworldhaskell.org/blog/ http://book.realworldhaskell.org/read/ https://github.com/tssm/up-to-date-real-world-haskell |
2023-09-08 18:53:47 +0200 | <lambdabot> | Okay. |
2023-09-08 18:54:29 +0200 | sand-witch | (~m-mzmz6l@vmi833741.contaboserver.net) (Server closed connection) |
2023-09-08 18:54:46 +0200 | sand-witch | (~m-mzmz6l@vmi833741.contaboserver.net) |
2023-09-08 18:55:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 18:56:59 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 246 seconds) |
2023-09-08 18:57:52 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 18:58:26 +0200 | <monochrom> | ph88: When I want it, I use ghc -ddump-minimal-imports |
2023-09-08 19:02:21 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 19:02:28 +0200 | <monochrom> | Add -fno-code :) |
2023-09-08 19:04:50 +0200 | <EvanR> | I heard on betazed they write all their programs with no code! |
2023-09-08 19:09:00 +0200 | qqq | (~qqq@92.43.167.61) |
2023-09-08 19:11:55 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 19:16:28 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 248 seconds) |
2023-09-08 19:16:59 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-09-08 19:18:04 +0200 | aaronv | (~aaronv@user/aaronv) (Remote host closed the connection) |
2023-09-08 19:18:23 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-09-08 19:21:56 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-09-08 19:23:51 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-09-08 19:26:47 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 248 seconds) |
2023-09-08 19:28:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 19:30:11 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) |
2023-09-08 19:35:03 +0200 | bratwurst | (~blaadsfa@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 246 seconds) |
2023-09-08 19:37:15 +0200 | phma | (phma@2001:5b0:212a:b168:8a63:fd9c:4a28:c70e) (Read error: Connection reset by peer) |
2023-09-08 19:37:17 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 19:38:38 +0200 | phma | (~phma@2001:5b0:210f:2a18:ec08:5fa6:cd25:140c) |
2023-09-08 19:45:45 +0200 | Inst | (~Inst@120.244.192.250) (Remote host closed the connection) |
2023-09-08 19:46:10 +0200 | Inst | (~Inst@120.244.192.250) |
2023-09-08 19:47:49 +0200 | Inst | (~Inst@120.244.192.250) () |
2023-09-08 19:49:34 +0200 | __monty__ | (~toonn@user/toonn) |
2023-09-08 19:50:55 +0200 | megaTherion | (~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-09-08 19:52:01 +0200 | megaTherion | (~therion@unix.io) |
2023-09-08 19:53:29 +0200 | megaTherion | (~therion@unix.io) (Client Quit) |
2023-09-08 19:54:36 +0200 | megaTherion | (~therion@unix.io) |
2023-09-08 20:02:14 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-09-08 20:02:51 +0200 | lex_ | (~alex@188.26.233.194) |
2023-09-08 20:05:11 +0200 | danza | (~francesco@151.46.222.150) (Remote host closed the connection) |
2023-09-08 20:05:30 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 20:08:20 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) (Remote host closed the connection) |
2023-09-08 20:08:29 +0200 | Typedfern | (~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
2023-09-08 20:08:32 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) |
2023-09-08 20:10:27 +0200 | lex_ | (~alex@188.26.233.194) (Remote host closed the connection) |
2023-09-08 20:11:17 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 246 seconds) |
2023-09-08 20:17:32 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Quit: Leaving) |
2023-09-08 20:20:16 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 20:23:35 +0200 | danza | (~francesco@151.46.222.150) (Remote host closed the connection) |
2023-09-08 20:23:37 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) |
2023-09-08 20:23:57 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 20:24:10 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) |
2023-09-08 20:24:25 +0200 | Typedfern | (~Typedfern@81.red-83-37-27.dynamicip.rima-tde.net) |
2023-09-08 20:28:39 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 248 seconds) |
2023-09-08 20:32:49 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-09-08 20:34:13 +0200 | <erisco> | Low code and no code just means your programming language is some mix of config files and GUIs |
2023-09-08 20:38:37 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-09-08 20:39:28 +0200 | gmg | (~user@user/gehmehgeh) |
2023-09-08 20:42:36 +0200 | <EvanR> | it takes a huge amount of code to write a GUI. So if code seems to be missing it's in the GUI |
2023-09-08 20:43:46 +0200 | pavonia | (~user@user/siracusa) |
2023-09-08 20:44:11 +0200 | <ph88> | how can i fix this type error about MonadFail ? https://bpa.st/HWOZ2 |
2023-09-08 20:44:38 +0200 | <haskellbridge> | <jean-paul.> ph88: You could add a MonadFail constraint to m |
2023-09-08 20:44:59 +0200 | <haskellbridge> | <jean-paul.> ph88: Or you could make your pattern match complete so you don't need MonadFail |
2023-09-08 20:45:49 +0200 | <ph88> | jean-paul when i get the constraint i get this https://bpa.st/3TURS i rather get rid of the MonadFail monad if possible |
2023-09-08 20:46:02 +0200 | <ph88> | ok i will try pattern match complete |
2023-09-08 20:47:08 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-09-08 20:47:26 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) |
2023-09-08 20:47:55 +0200 | cael_ | (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Client Quit) |
2023-09-08 20:50:13 +0200 | aaronv | (~aaronv@user/aaronv) (Ping timeout: 240 seconds) |
2023-09-08 20:53:47 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-09-08 20:54:01 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-09-08 20:54:28 +0200 | danza | (~francesco@151.46.222.150) |
2023-09-08 21:02:13 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 240 seconds) |
2023-09-08 21:05:03 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
2023-09-08 21:05:28 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) (Remote host closed the connection) |
2023-09-08 21:06:17 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-09-08 21:09:01 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) |
2023-09-08 21:09:32 +0200 | arahael | (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds) |
2023-09-08 21:11:31 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 21:14:28 +0200 | <ph88> | sm2n, i made a fork https://github.com/flip111/importify/tree/lts-21.10 |
2023-09-08 21:21:34 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 21:26:24 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-09-08 21:34:48 +0200 | <monochrom> | ph88: "cabalPath <- fromJust <$> findCabalFile qpPath" will not incur MonadFail. Basically non-exhaustive patterns in do-notation incurs MonadFail. |
2023-09-08 21:39:56 +0200 | <ph88> | thanks monochrom |
2023-09-08 21:40:27 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:1030:d66f:8de7:984f) |
2023-09-08 21:44:47 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-09-08 21:45:35 +0200 | gmg | (~user@user/gehmehgeh) |
2023-09-08 21:48:58 +0200 | danza_ | (~francesco@151.43.253.223) |
2023-09-08 21:49:11 +0200 | danza | (~francesco@151.46.222.150) (Ping timeout: 248 seconds) |
2023-09-08 21:53:41 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-09-08 21:54:12 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
2023-09-08 21:54:25 +0200 | gmg | (~user@user/gehmehgeh) |
2023-09-08 21:55:08 +0200 | Simikando | (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Quit: Leaving) |
2023-09-08 21:56:48 +0200 | jackneill__ | (~Jackneill@20014C4E1E101A0091C70064EC2E3AAF.dsl.pool.telekom.hu) (Ping timeout: 246 seconds) |
2023-09-08 22:07:33 +0200 | danza_ | (~francesco@151.43.253.223) (Ping timeout: 258 seconds) |
2023-09-08 22:13:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-09-08 22:19:22 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-09-08 22:19:40 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-09-08 22:20:01 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 22:20:14 +0200 | sm | (~sm@plaintextaccounting/sm) (Client Quit) |
2023-09-08 22:22:03 +0200 | fendor | (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) |
2023-09-08 22:23:17 +0200 | stites | (~stites@155.33.134.55) (Read error: Connection reset by peer) |
2023-09-08 22:23:54 +0200 | stites | (~stites@155.33.134.55) |
2023-09-08 22:24:59 +0200 | mzg | (mzg@lazy.unconscious.biz) (Ping timeout: 246 seconds) |
2023-09-08 22:25:06 +0200 | mzg | (mzg@lazy.unconscious.biz) |
2023-09-08 22:27:39 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-09-08 22:28:07 +0200 | stites | (~stites@155.33.134.55) (Ping timeout: 248 seconds) |
2023-09-08 22:28:36 +0200 | stites | (~stites@2607:fb91:dc9:7a86:c8d0:2613:87c3:be7) |
2023-09-08 22:35:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-09-08 22:37:00 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Read error: Connection reset by peer) |
2023-09-08 22:39:56 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-09-08 22:42:46 +0200 | Pickchea | (~private@user/pickchea) |
2023-09-08 22:44:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-09-08 22:46:06 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-09-08 22:47:05 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-09-08 22:48:51 +0200 | stites | (~stites@2607:fb91:dc9:7a86:c8d0:2613:87c3:be7) (Read error: Connection reset by peer) |
2023-09-08 22:49:11 +0200 | stites | (~stites@130.44.147.204) |
2023-09-08 22:51:35 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 22:55:51 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 248 seconds) |
2023-09-08 23:00:38 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-09-08 23:01:45 +0200 | kimiamania | (~67afdc47@user/kimiamania) (Quit: PegeLinux) |
2023-09-08 23:02:13 +0200 | kimiamania | (~67afdc47@user/kimiamania) |
2023-09-08 23:02:22 +0200 | AlexZenon | (~alzenon@178.34.160.172) (Ping timeout: 258 seconds) |
2023-09-08 23:03:54 +0200 | AlexZenon | (~alzenon@178.34.160.172) |
2023-09-08 23:07:03 +0200 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2023-09-08 23:08:20 +0200 | libertyprime | (~libertypr@203.96.203.44) |
2023-09-08 23:08:48 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-09-08 23:09:45 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-09-08 23:18:32 +0200 | mmhat | (~mmh@p200300f1c7178a9eee086bfffe095315.dip0.t-ipconnect.de) |
2023-09-08 23:19:50 +0200 | _xor | (~xor@ip-50-5-233-250.dynamic.fuse.net) (Quit: Ping timeout (120 seconds)) |
2023-09-08 23:20:08 +0200 | _xor0 | (~xor@ip-50-5-233-250.dynamic.fuse.net) |
2023-09-08 23:23:03 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-09-08 23:24:31 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 23:25:01 +0200 | mmhat | (~mmh@p200300f1c7178a9eee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.4) |
2023-09-08 23:26:15 +0200 | acidjnk | (~acidjnk@p200300d6e7072f30251e7d7a920dd919.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2023-09-08 23:27:51 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds) |
2023-09-08 23:29:12 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds) |
2023-09-08 23:31:43 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 23:36:23 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 248 seconds) |
2023-09-08 23:36:29 +0200 | fendor | (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) (Remote host closed the connection) |
2023-09-08 23:38:48 +0200 | powderhorn | (~powderhor@207-153-12-54.static.fttp.usinternet.com) |
2023-09-08 23:39:18 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Quit: caryhartline) |
2023-09-08 23:46:02 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-09-08 23:49:04 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-09-08 23:52:18 +0200 | Vajb | (~Vajb@2001:999:500:7771:18aa:c4e5:e7a9:f44b) (Read error: Connection reset by peer) |
2023-09-08 23:53:04 +0200 | Vajb | (~Vajb@2001:999:500:7771:18aa:c4e5:e7a9:f44b) |
2023-09-08 23:53:44 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds) |
2023-09-08 23:55:59 +0200 | wroathe | (~wroathe@user/wroathe) |