freenode/#lisp - IRC Chatlog
Search
16:05:58
beach
ebrasca: I don't think it is appropriate for me to pollute #sicl with yet another series of utterances about why I started the SICL project. If you really want to know, join #sicl.
16:06:04
beach
The assembler that SICL uses is called Cluster, and it is a separate repository. You will likely be disappointed by it, because it does not have a surface syntax, since it is meant as a backend for compilers.
16:06:05
beach
If you were to write an assembly program for it, it would look like (list (make-instance 'instruction :mnemonic "MOV" :operands ...) (make-instance 'instruction :mnemonic "ADD" :operands ...))
16:08:19
pjb
Wouldn't it be trivial for a lisper to write: (defun assemble (instruction) (apply (function make-instance) 'instruction :mnemonic (symbol-name (car instruction)) :operands (mapcar (function assemble-operand) (cdr instruction)))) ?
16:09:16
beach
So rather than imposing a syntax on the user, and syntax seems to be what everyone can disagree upon, I allow for whatever surface syntax you want.
16:18:10
beach
ebrasca: I guess I can say one unique thing, which jackdaniel already hinted. SICL is the first implementation I know of that is written entirely using the full Common Lisp language.
16:18:11
beach
Even an implementation such as SBCL (with very little code in any other language) can not use the full language for certain modules, in particular the compiler. The SICL bootstrapping technique is unique, and allows me to use the full language for every module.
16:19:18
pfdietz
The SBCL type system implementation has some hairy code that would benefit greatly from being able to use CL's full object system.
16:44:18
|Pirx|
I'm playing with hunchentoot, I want it to handle all requests with the same function (looking up uris in a hash table and returning a fixed string), not maintaining a list of handlers, not serving files, what would be a good way to do that?
16:45:10
|Pirx|
define-easy-handler use a handlers list, depending on uris, but I want the same functions for everything
17:30:22
alandipert
hi all, i'd be grateful for any feedback from anyone on my ELS submission about my WIP browser-based implementation, JACL. thanks in advance - https://tailrecursion.com/~alan/documents/jacl-els-2020-draft.pdf
18:20:10
alandipert
_death https://gist.github.com/alandipert/bf7167580f385d7eb8f6dd0fb38698cf demonstrates most of what's currently available
18:28:26
alandipert
i've been plugging away at it for over a year though, with no signs of stopping. looking forward to collaborating on it with people after it reaches a certain point
18:31:24
Xach
alandipert: glad to see some review of jscl, which is what immediately sprang to mind for me
18:32:56
alandipert
Xach thanks, yeah, jscl... i've really enjoyed exploring jscl, it's filled with excellent ideas
18:33:34
alandipert
the way it supports multiple values is especially clever, i will probably end up with a similar approach
18:34:16
_death
hmm, disconnected so don't know if this went through.. I guess one question would be, what is the rationale for creating something new from scratch instead of improving an existing implementation
18:36:41
alandipert
_death i struggle with this, but decided ultimately that the jscl project goal was not in alignment with my own. and so i couldn't expect other users to want to collaborate on a rewrite
18:45:47
dlowe
and when you show them the amazing frob you made, they'll say yeah but I made a better frob using import frob and then extending it
18:49:13
vms14
the only stuff I've achieved with lisp was yet another html generator with code able to make you cry and some clx windows using xshape so they're characters moving on the screen
18:53:57
alandipert
_death a SPA type thing? or were you doing electron stuff? or something different
18:54:37
_death
alandipert: I usually avoid anything that requires javascript (my main browser has js disabled by default).. but for this it was kind of needed so I went all out
18:54:41
dlowe
the only reasonable choices are to enjoy lisp by yourself (and the very intelligent and good looking lispers on IRC) or use whatever the people around you are using
18:57:12
alandipert
how did you find yourself propagating effects in response to clicks? in a past life i've taken a Cells type approach, albeit from clojurescript
18:58:12
_death
alandipert: the probability propagation is made on the server.. if you mean the UI, it's react
18:59:01
alandipert
_death gotcha. so you are receiving full graphs from the server, and react is relegating them with the local UI state it sounds like?
19:00:02
_death
alandipert: currently probability propagation happens using a junction tree.. before that, I used variable elimination to query for each node.. also implemented pearl's belief propagation (extended for polytrees), and approximate approaches such as likelihood weighting
19:01:45
_death
I also implemented several BN structure/parameter learning algorithms.. and before that hidden markov model, bayesian classifiers, etc. basically I'm reading a book about probabilistic graphical models and implementing most of what it talks about
19:05:51
_death
alandipert: it takes a while to read a book that way.. and also, it's intertwined with many papers ;)
19:06:48
alandipert
Nilby i'm humbled you're familiar with it :-) working on that was ridiculously fun
19:18:43
alandipert
vms14 as far as i'm concerned, it it were possible to "win" at the reading of PAIP, the creator of SLip has won
19:22:36
alandipert
vms14 oh, just because he started with the compiler and bytecode interpreter in PAIP and ended up with a lisp system with cooperative multitasking and an emacs clone
19:31:08
Nilby
I just took it as entertainment. What I actually want to use is the other way around, the browswer inside emacs inside CL.
19:32:05
vms14
ebrasca: because I'm not able to find how to start playing withthat, more than with the turtle library
19:35:29
vms14
ebrasca: it's a "cursor" that goes drawing lines when it moves, just take a look at the slip site
19:36:48
vms14
the thing is I want to use slip for making a blog, but the documentation says "look at this shiny code I wrote and figure it by yourself :D"
19:42:22
Nilby
Well documented things destroy our opportunity to practice writing documentation, and independently understanding dense and arcane code.
19:52:46
vms14
docstrings talk about what a function does, write documententation is a thing we usually don't want to do, specially if we don't know how many people would use that
19:54:27
vms14
anyway I suppose lispers are used to look at the code and track what the heck the software is doing
22:06:10
Xach
A long time ago I bought a book about X, and it mentioned that some limits are what they are to accomodate Common Lisp tagged integers.
22:13:46
no-defun-allowed
Basically they allow a fixnum to be represented in one word without heap memory by jamming the fixnum in the pointer with a different bit pattern to actual pointers.
0:09:24
pjb
jfb4: the tag could be stored in a separate byte, perhaps near the word where the integer is stored, perhaps not. Perhaps it's not even associated directly with the integer, but instead, with the memory page, ie. the address where the integer is stored (integer or other type).
0:13:54
pjb
jfb4: but it is correct that the X11 protocol is specified leaving the upper 3 bits in its handles set to 0, to make it simple for lisp and other tagged languages to use it. https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#Common_Types
0:15:14
pjb
jfb4: note that usually tags in fixnums are stored in the lower bits instead, since it makes it more easily to manipulate on a normal 32-bit processor (additions and subtractions can be performed without change, multiplications and division by prefixing or suffixing a shift operation on one of the arguments).