00:00:47 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=180115&oldid=180114 * Ais523 * (+325) /* Category:Transfinite */ "special enough" is a bad reason to make a category
00:16:58 -!- amby has quit (Remote host closed the connection).
00:26:47 <esolangs> [[User:Elemental]] https://esolangs.org/w/index.php?diff=180116&oldid=179888 * Elemental * (+0)
00:47:16 <esolangs> [[Talk:Mhm!]] https://esolangs.org/w/index.php?diff=180117&oldid=179041 * Aadenboy * (+1514) /* UFBIM */ new section
00:47:27 <esolangs> [[Talk:Mhm!]] https://esolangs.org/w/index.php?diff=180118&oldid=180117 * Aadenboy * (+12)
00:49:12 <esolangs> [[Talk:Mhm!]] https://esolangs.org/w/index.php?diff=180119&oldid=180118 * Aadenboy * (+8)
01:05:25 -!- somefan has joined.
01:05:25 -!- somefan has changed hostmask to ~somefan@user/somefan.
02:23:15 <zzo38> Does any roguelike game have commands for shoves, slams, grapples, etc?
02:59:34 <zzo38> If I want to save the memory (including the stack and the full state of memory allocation) and CPU registers of a running program so that it can later be restored, can this be done, if this is known before the program is compiled? I specifically do not want to save or restore any threads, file descriptors, etc (anything that needs to be handled like that will be in a sepsrate process that doesn't need saved/restored).
03:13:45 <zzo38> Can this be done somehow using ptrace?
03:16:18 <zzo38> (and/or by using the /proc file system?)
03:28:47 <b_jonas> zzo38: yes, it can be done, if you're actually allowed to attach ptrace to the process, eg. it's not a setid program and ptrace isn't disabled globally. you do need the /proc file system to discover the mappings, so you know which areas in the process's virtual memory space to save.
03:30:47 <b_jonas> I think usually the easiest way to do this is to let the kernel do it by making the process dump core with a signal. Raise the core dump size limit first using setrlimit. You'll have to make sure that the core dump file can actually be written so you have permission to the directory where it would be written, that directory is either the process's wd or some fixed directory configured at system level
03:33:10 <zzo38> I think there would be no need to save the contents of mapped read-only files (or of any parts of the executable file itself which are read-only), although it is necessary to know that they are mapped.
03:35:12 <zzo38> As I had mentioned above, the program to be saved and restored expects to be saved and restored, so I would expect that it would have permissions because it would be set up to do this
03:39:53 -!- lisbeths has quit (Quit: Connection closed for inactivity).
03:40:38 <b_jonas> zzo38: yeah, but if the location depends on the working directory then the program would have to be careful in how it chdirs
03:41:24 <zzo38> What other considerations are necessary? And, if you do it that way, how can it be restored?
03:43:43 <zzo38> (The program to be saved will need to tell the other process to save it, and will also need to have a way to indicate that it has just been restored, since it might e.g. redraw the screen)
03:52:10 <b_jonas> zzo38: do you want to be able to preempt the process at any point to freeze it, or will the process call a specific function when it wants to be freezed?
03:52:32 <b_jonas> restoring is probably the harder part than saving
03:54:45 <zzo38> The process will call a specific function when it wants to be freezed.
04:10:15 -!- lisbeths has joined.
04:16:02 <b_jonas> that makes this somewhat easier, because then you can skip restoring most of the registers. you don't have to save any registers that normal function calls can overwrite, and the function can save and restore most other registers itself.
04:17:04 <zzo38> The stack would still need to be saved, and some registers also might need to be saved but I think which ones they are might depend on the computer?
04:24:26 <b_jonas> you need to save registers that normally almost never change, like the per-thread variables pointer, and you may have to save some registers needed to bootstrap the function to a state where it can restore the rest of the registers from memory
04:25:22 <b_jonas> the stack can be saved basically the same way as other mapped memory segments, except there may be a special mmap option that you have to save together with all the other mmap and mprotect and similar settings
04:59:43 <esolangs> [[Quantum Oragami]] https://esolangs.org/w/index.php?diff=180120&oldid=180014 * Miui * (+499)
05:09:01 <esolangs> [[Quantum Oragami]] https://esolangs.org/w/index.php?diff=180121&oldid=180120 * Miui * (+18) /* Halting */
05:36:23 <esolangs> [[Quantum Oragami]] https://esolangs.org/w/index.php?diff=180122&oldid=180121 * Miui * (+97) /* Halting */
05:45:37 -!- cactushead has quit (Read error: Connection reset by peer).
05:45:37 -!- svm has joined.
05:45:55 -!- cactushead has joined.
05:47:53 -!- msv has quit (Ping timeout: 248 seconds).
06:47:00 -!- tromp has joined.
06:59:07 -!- orin has quit (Ping timeout: 244 seconds).
07:50:49 <esolangs> [[Special:Log/newusers]] create * Aic 12323 * New user account
08:16:12 <esolangs> [[Special:Log/newusers]] create * AIC 67112 * New user account
08:27:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:35:33 -!- tromp has joined.
08:37:05 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=180123&oldid=179874 * Asahi Inoue * (+22)
08:39:19 <esolangs> [[]] https://esolangs.org/w/index.php?diff=180124&oldid=180026 * Asahi Inoue * (+1818) Removed redirect to [[Katakamuna Lang]]
09:05:57 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=180125&oldid=180123 * PlaceReporter99 * (+27) Add my language
09:11:39 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180126&oldid=180051 * Initys * (+0) /* Remembered number (secondary register) */
09:14:15 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180127&oldid=180126 * Initys * (-6) /* Remembered number (secondary register) */
09:26:01 <esolangs> [[Crazy J]] https://esolangs.org/w/index.php?diff=180128&oldid=177175 * Blashyrkh * (+4137) Formalize my own IJ-specific abstraction elimination algorithm, reorganize the doc a little bit
09:35:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:35:29 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180129&oldid=180127 * Initys * (+369) /* Remembered number (secondary register) */
09:39:23 <esolangs> [[Talk:Playerlang]] https://esolangs.org/w/index.php?diff=180130&oldid=180035 * Initys * (+36)
09:48:27 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180131&oldid=180129 * Initys * (+1213) /* 99 Coins */
09:49:00 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180132&oldid=180131 * Initys * (+7)
09:50:08 -!- tromp has joined.
10:19:54 -!- lisbeths has quit (Quit: Connection closed for inactivity).
10:53:08 <esolangs> [[Crazy J]] https://esolangs.org/w/index.php?diff=180133&oldid=180128 * Blashyrkh * (+215) /* Abstraction elimination rules */ Eta reduction rule is common for all approaches
11:03:19 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180134&oldid=180132 * Initys * (+161) /* Conditionals */
11:09:12 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180135&oldid=180134 * Initys * (+105) /* Inspired by */
11:11:41 <esolangs> [[Monky]] https://esolangs.org/w/index.php?diff=180136&oldid=179801 * Menguinponky * (+10) /* Syntax */
11:13:59 <esolangs> [[Monky]] https://esolangs.org/w/index.php?diff=180137&oldid=180136 * Menguinponky * (+0) /* Syntax */
11:23:07 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=180138&oldid=180115 * Yayimhere2(school) * (+219) /* Category:Graph-based? */
12:03:33 -!- amby has joined.
12:14:39 <esolangs> [[Monky]] https://esolangs.org/w/index.php?diff=180139&oldid=180137 * Menguinponky * (-2) /* Cat program */
12:18:10 -!- lisbeths has joined.
12:28:33 <esolangs> [[T F]] M https://esolangs.org/w/index.php?diff=180140&oldid=179973 * Esolang lover123 * (+12) /* Programs */
12:41:29 <esolangs> [[Calculus Constructio]] https://esolangs.org/w/index.php?diff=180141&oldid=180041 * PlaceReporter99 * (+1225)
13:04:22 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180142&oldid=180135 * Initys * (+1052) /* Examples */
13:06:55 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180143&oldid=180142 * Initys * (+5) /* Examples */
13:08:32 <esolangs> [[Playerlang]] https://esolangs.org/w/index.php?diff=180144&oldid=180143 * Initys * (-9) /* Game */
13:14:51 <esolangs> [[User:Ractangle/Sandbox/Comments]] https://esolangs.org/w/index.php?diff=180145&oldid=179816 * PrySigneToFry * (+378)
13:21:14 <esolangs> [[The Second Coming]] https://esolangs.org/w/index.php?diff=180146&oldid=179525 * PrySigneToFry * (+163)
13:28:21 <esolangs> [[Crazy J]] https://esolangs.org/w/index.php?diff=180147&oldid=180133 * Blashyrkh * (+2909) Separate subsection for numeric constants and Church arithmetics
13:29:18 <esolangs> [[Crazy J]] M https://esolangs.org/w/index.php?diff=180148&oldid=180147 * Blashyrkh * (-1) /* Church numerals */ Formatting typo
13:42:29 <esolangs> [[Crazy J]] https://esolangs.org/w/index.php?diff=180149&oldid=180148 * Blashyrkh * (+5) /* Church numerals */ More precise definition of inlined addition operator
13:59:36 <esolangs> [[Codesh ()]] M https://esolangs.org/w/index.php?diff=180150&oldid=179042 * StavWasPlayZ * (-2)
14:15:48 -!- svm has changed nick to msv.