freenode/#lisp - IRC Chatlog
Search
6:36:02
asarch
One stupid question: Is SB-EXT:SAVE-LISP-AND-DIE the same with Smalltalk about the images?
6:37:04
beach
I don't know about Smalltalk images, but it saves the entire image into a "core" file that can then be used as an argument to start up SBCL later.
6:38:40
beach
People complain that it creates a big file, but that is a problem only if you are planning to create thousands of small applications, or if you have an embedded system with very little memory.
6:39:17
beach
Oh, and there is an option to create an executable file too, so no core file required in that case.
6:39:36
asarch
I studied the log from the other day (when I did a mess with packages) and I found what went wrong
6:39:40
zigpaw
they are close enough, there are some limitations you'll see more limiting in SBCL than in Squeak/Pharo, the "one active thread only" will prevent you from having gui app dumped to image, in smalltalk you get that taken care of itself.
6:40:46
asarch
Since I was desperate to make my example to work, I couldn't read that :clim cannot be used it directly
6:42:43
zigpaw
on the other hand, when learning sometimes it is good to do the not recommended, just to learn why it is so ;)
6:43:51
asarch
I found a working example at: /home/asarch/quicklisp/dists/quicklisp/software/mcclim-20180711-git/README.md
6:54:50
beach
But, in addition, it is recommended that you do not :USE packages other than a small number (I only ever :USE the COMMON-LISP package) that you trust not to change.
6:58:24
beach
Pretty much all I do from the REPL is to have ASDF compile a package, start an application, or run some tests.
6:58:31
zigpaw
when learning and writting throw-away code in repl, I think it is free-for-all if you know the rules/good-practices you are breaking ;-)
7:00:55
beach
And, yes, of course, you can't wait until you know all the rules before you start writing code.
7:08:29
aeth
I only :USE CL and my own libraries. If I broke something in the latter, I know it's my fault.
8:06:54
beach
So the Common Lisp HyperSpec explicitly allows for the implementation to define additional options for DEFGENERIC and DEFCLASS. I am wondering how existing implementations take advantage of this liberty and what additional options would benefit SICL.
11:49:22
AeroNotix
"the trick is to understand the basic feature of lisp which is taught in the 2nd part of the 5 minute introduction to lisp."
11:50:54
beach
I have been accused of elitism for saying that I think it would be a good idea for professional programmers to have some formal training in programming.
11:54:53
jackdaniel
it could be understood, that formal education would be a formal requirement to be allowed to program professionally, that is a kind of elitism (not necessarily in bad sense, *but* we have many proficient programmers who are self-taught)
11:56:43
no-defun-allowed
Tomorrow I hope to publish cl-decentralise, my journey into decentralised information things.
11:56:57
no-defun-allowed
It's way faster than blockchains, syncing faster than I can watch a screen.
11:57:28
no-defun-allowed
It manages a table of blocks and versions which hold data and synchronise them over, aiming to hold the most blocks with the highest version numbers.
12:01:02
beach
jackdaniel: It seems like in software development we go to far the other direction. High-school drop-outs are considered heroes, and people with formal training are considered "elitist".
12:01:05
no-defun-allowed
There's no blockchain, smart contracts or any bullshit. It's a bullshit free backbone.
12:02:06
AeroNotix
no-defun-allowed: distributed consensus protocols aren't inherently required to be "blockchains"
12:02:26
AeroNotix
beach: I think there's a huge difference in academic programming and industry programming
12:02:54
no-defun-allowed
I'm only tying the developers to one assumption, that there is a definite "latest" state in their environment.
12:03:21
AeroNotix
beach: academics think their work is a superset of all of industry work, it's just not the case at all. I find a lot of elitism stems from the belief it is a superset and therefore where all of industry programming is heading and techniques learned in academia MUST eventually be used in industry
12:03:23
no-defun-allowed
The protocol is symmetrical, so you can have two REPLs connected to each other, with hooks to announce new information too.
12:03:45
jackdaniel
beach: as I said, I don't consider "elitism" a bad thing, I'm just saying that the quoted claim is elitist *and* that being "elitism" is not a drawback. also noted, that such status-based elitism may hurt people, who could be perceived as an elite from "skill" perspective. but I'm getting into offtopic, sorry :)
12:04:14
no-defun-allowed
I'll release it tomorrow, I just have to make a synchronous-ish API for clients and do some final testing.
12:04:35
no-defun-allowed
The whole thing was 240loc last time I checked, and it hopefully will stay under 400.
12:04:54
AeroNotix
beach: no, you didn't. I just brought it up because I find a lot of grating conversations appear at that boundary
12:05:04
no-defun-allowed
I also have a <20LOC example which uses two hash tables for data and versions.
12:06:06
AeroNotix
no-defun-allowed: I'm a huge fan of using jepsen/knossos for testing distributed consensus
12:06:34
no-defun-allowed
It's all textual for example, and the line `--EOF--` is reserved to denote end-of-files.
12:07:02
no-defun-allowed
It only checks the version number is being incremented and you make the logic, blah blah.
12:08:01
AeroNotix
lets say you have a mesh of 4 servers running this protocol. You end up with two partitions. They each keep accepting writes on either side. What is the true version of the write after the partition heals?
12:09:04
no-defun-allowed
I have a line commented "we don't care" in the upload logic. It's literally (t nil).
12:09:57
no-defun-allowed
Unix timestamps fit naturally to the problem but I still prefer revision numbers.
12:10:03
AeroNotix
if you have a (2)-(2) netsplit with 4 servers. During a split there are an equal number of writes on both sides.
12:10:53
no-defun-allowed
No, but the versioning number is and that's how the latest version is decided.
12:11:29
no-defun-allowed
If both sides hold revision #3, neither will listen to the other even if they verify. Someone must come along and write #4 or greater.
12:12:17
no-defun-allowed
If you want those, use a linked list of some form and make everything immutable.
12:12:57
no-defun-allowed
Alright, goodnight. I have fucking guitar ensemble in the morning. God vce music sucks
12:16:33
Shinmera
Bleh, only need to write some thousand lines of documentation more and I'll finally be rid of this damned library
12:21:20
Shinmera
Ah balls I forgot funcall doesn't take a function name. -- needs to be (funcall (fdefinition `(setf ,foo)) ..)
15:13:19
Shinmera
ACTION 's ghost leaves him https://github.com/Shinmera/iclendar/blob/master/documentation.lisp