freenode/#lisp - IRC Chatlog
Search
8:46:52
beach
Every time I have to restart my computer after having installed software updates, I am furious that we are still using operating-system technology from half a century ago.
8:50:38
beach
That would be better, yes, but the best thing would be to move closer to the 21st century.
8:52:56
beach
splittist: A while ago, you hinted that you might do something about my suggested documentation system, or did I misunderstand?
8:55:42
splittist
beach: yes, I'm slowly thinking about it. Or thinking about writing up some outline documentation to start with.
9:19:46
rk[ghost]
i will share more details in the future.. may be recruiting once some new momentum is achieved.. but me and a friend have been heavily discussing replacing the current stack from top to bottom. in essence come up with a 10 year plan to break out of this current industry driven cycle of being fed garbage...
9:22:13
beach
Sounds like a plan. Yes, there is lots of momentum, mainly because people don't seem to call into question their current ways of working.
9:22:25
SAL9000
rk[ghost]: when you say top-to-bottom do you mean Lisp OS and working your way up from there, or...?
9:22:25
Colleen
SAL9000: drmeister said 10 hours, 52 minutes, 46 seconds ago: The docker directory mounting worked perfectly on Windows this morning. The 'run-docker' script on 'widgets-dev' works without modification.
9:25:56
rk[ghost]
beach: i think it is more because people are swindled so much by $ that they accept writing asldkfj softwarez all day and only spend their efforts afterwords complaining at the bars:P
9:26:37
rk[ghost]
SAL9000: you aren't thinking big enough. gotta have a lisp machine before you have a lisp OS
9:27:23
jackdaniel
but the initial effort is driven by people who are simply dissatisfied with current state
9:27:32
rk[ghost]
beach: i /know/ that.. but my point was.. that some hardware will need to change.. my true focus isn't on CL.. although i enjoy it much
9:27:43
jackdaniel
whenever they direct their effort in good direction is a question for which each answer will be merely an opinion
9:28:00
rk[ghost]
much of what me and my friend have been discussing starts with the networking stack.. and that'll require a few changes to some hardware along wit hthe protocols and software
9:29:37
rk[ghost]
so i have been toying around with writing a basic lisp interpreter for RV32IMAC; besides McArthys papers.. any other good suggestion resources for the fundamentals of the metacircular evaluator and such?
9:31:17
beach
The only reason I can see to write a Lisp interpreter would be in order to learn about language implementation.
9:32:22
rk[ghost]
jackdaniel: fair points.. but in the end.. the industry drive overrules anything of interest that comes out of academia or discontent programmers
9:33:09
rk[ghost]
beach: well a good chunk of it is to get back in the programming mindset.. quit my job about 1.5 years ago to go farm..
9:33:57
jackdaniel
risky statement, I'd say that it adapts some of it, but overruling is rather a rare exception
9:34:05
beach
rk[ghost]: If all you want is to program, there are more useful things to write than another Lisp interpreter.
9:35:23
rk[ghost]
beach: aye, but sorta /need/ (surely it is a want, but meh) an interpreter to move on to the next step of my toy project..
9:36:06
rk[ghost]
think CCL would compile for RV32IMAC.. i suppose i could have just tried and found out..
9:37:39
rk[ghost]
i have a Hifive1.. and i really really would prefer not to have to write C for interfacing with it.. next step is to write code for a humidity / temperature sensor..
9:38:59
rk[ghost]
well.. without the interpreter.. how is the board suppose to evaluate lisp code i send over UART?
9:42:25
rk[ghost]
risc-v 32i (mac << you can ignore this mostly.. just specific modules) architecture
9:50:51
jackdaniel
you may put eval there and repl, that's not overly hard. My point is, that having simply interpreter on the machine won't give you much
9:51:28
jackdaniel
and it will be awfully slow and limited, while if you write compiler to run somewhere else, you could have for instance macros etc, which get compiled and uploaed into that machine
9:52:36
jackdaniel
if you are interested in simply running interpreter, check out uLisp, armpit scheme, microscheme - your description fits most uLisp imo
9:53:19
jackdaniel
rk[ghost]: then take uLisp, provide the lacking glue and don't waste time on making same thing over again
9:54:28
jackdaniel
but I'd say that in my opinion it's far from being a start for software/hardware revolution / redo in better manner
9:54:46
jackdaniel
just convenience hack to scratch the itch (i.e live coding and love for parenthesis:)
9:54:50
rk[ghost]
is there a good framework for message passing in CL? (i know there is LFE.. but since this is CL channel.. thought i would ask)
9:57:21
rk[ghost]
cross compiling doesn't seem to work for my use case.. as that assume that the hifive1 is connected to another machine..
9:59:14
rk[ghost]
jackdaniel: oh! this toy project for lisp interpreter on rv32imac has 0 to do with my previous statements of software/hardware revolution.
10:04:13
rk[ghost]
anyhoot- thanks again for ya'lls comments. i quite understand that any of my effort is superfluous..
10:11:06
jackdaniel
that's not true, writing interpreter is a good learning experience. But if you want just some lisp on the machine, much more effective way would be porting one of the mentioned languages to your machine
11:31:39
james__
; The symbol "HOST-ENT-ADDRESS-TYPE" is not external in the SB-BSD-SOCKETS package.
12:02:56
beach
My idea for testing the Earley-based lambda-list parsers is to create simple ad-hoc hand-written parsers with skimpy error checking, and then compare the results of applying both parser types to the same lambda list.
12:06:44
beach
It beats the alternative, which is to check that the parse tree is correct by manually parsing the input of every test case.
16:03:06
beach
KZiemian: Are you saying you want to know whether "e.g." should be followed by a comma or not?
16:04:03
KZiemian
beach: yes, there are many change this small, but I try to note every one that is not whiespace or not important to code
16:04:29
KZiemian
phoe: The type real includes all numbers that represent mathematical real numbers, though there are mathematical real numbers (e.g., irrational numbers) that do not have an exact representation in Common Lisp.
17:26:08
akr[m]
Hello, CL noob here, can someone tell me what is going on here: https://pastebin.com/VRbTRvCa
17:27:51
minion
akr[m]: please look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
17:30:50
akr[m]
I was rather confused that a simple expression that the REPL prints out would give an error when typed back
17:30:51
dlowe
akr[m]: it wasn't snarky. My answer to you would be different depending on if you have or not
17:31:54
akr[m]
well, I have programmed in about 10 languages and have a BsC. in compsci, if you really need to know
17:32:20
Bicyclidine
the repl evaluates. some values cause errors when they are evaluated. those values can of course be returned by the evaluation of some forms.
17:33:36
minion
akr[m]: please see pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
17:37:00
jackdaniel
akr[m]: they explain for instance evaluation rule, you may want to reread them then
17:44:10
aeth
akr[m]: foo(bar, baz, quux) in most languages becomes (foo bar baz quux) in Lisp. Lists in Lisp are really cons cells/pairs (such as '(foo . (bar . (baz . (quux . NIL))))) so the implementation is going to think that (foo . bar) is a function call.
17:45:27
aeth
That's equivalent to (+ 1 2) but of course no one is going to write it in the verbose way above.
17:46:05
akr[m]
yeah sorry I guess I forgot that you need to quote a list if you don't want it interpreted as a function call
18:00:20
aeth
because in the other sense of a list (in CL, "proper list") it's not: (alexandria:proper-list-p '(foo . bar)) => NIL
18:01:37
pjb
akr[m]: (cons 5 6) is a list of 3 elements: cons, 5 and 6. It's built with 3 cons cells, the last one being (6 . nil).
18:02:06
pjb
akr[m]: the list (cons 5 6) can be interpreted as a lisp function application: call the function named cons with 2 arguments: 5 and 6. So this works.
18:02:18
aeth
phoe: What I mean is that in some languages (such as Scheme) a "list" is what CL calls a "proper list". So it's one of those things where the CL-specific terminology must be learned.
18:02:32
pjb
akr[m]: but the cons cell (5 . 6) cannot be interpreted as anything in lisp. 5 is not the name of an operator. Dotted lists are not lisp source forms.
18:04:00
pjb
akr[m]: now, if you consider that eval actuall accepts the cons cell as input (it will just behave predictably by generating an error, which may be what you want), you can still consider that (5 . 6) is code, that when evaluated will generate this error.
18:05:21
pjb
(error "foo") is a lisp form. Its evaluation signals an error. (5 . 6) is also a lisp form whose evaluation signals an error. ;-)
18:05:51
pjb
akr[m]: you can establish a type theory that takes into account non-local exits, including errors.
18:06:22
pjb
akr[m]: some languages declare exceptions in function signatures: void foo(int) throws NullPointer; // stuff like that.
18:07:08
Bicyclidine
i'd say (+ 'a) is not well-typed code, and (5 . 6) is not an object of type valid-form, i guess
18:08:01
pjb
Notice how sbcl actually signals a type-error on 6, instead of a program-error on (5 . 6).
18:09:59
pjb
(handler-case (5 . 4) (error () 'yay) (:no-error (&rest ignore) 'pas-glop)) with ccl: #| ERROR: While compiling an anonymous function : In the form (5 . 4), 5 is not a symbol or lambda expression. |#
18:10:51
pjb
Anyways, the point here is that (5 . 4) is not a valid form indeed, if you put it in the source, the compiler should signal an error, so it won't be executed (even to signal an error).
18:12:05
pjb
There are differences between a CL interpreter and a CL compiler that are accepted, even if the standard tries to minimize the semantic differences between both kind of implementation.
19:18:26
pjb
So it's a good choice. But where does the size of your code enter the scene then? Reducing the size of the code won't make queries to the hash-table faster.
19:20:09
paule32
together, it can be a tree 2 + 4 = 6 so the system knows now a tree build with 2 + 4
19:24:42
pjb
If you can write down all those preferences and rules, you would get your program written for you…
19:27:40
pjb
For example, if you were able to say that you wanted to write in your source code the list of words and numbers, and have it magically used to fill a hash-table so that you can query the words or the numbers, then you would have just to write that in lisp instead of English and have your program done.
19:28:50
pjb
(defun magically-fil-hash-table (table pairs) (loop for (a b) on pairs by (function cddr) while a do (setf (gethash a table) b (gethash b table a))))
19:54:03
MrSleepy
I am looking for book recommendations I have already read "practical common lisp" and "land of lisp" I want to get even better and learn the language even deeper. Can anybody recommend me another book? If this is the wrong place to ask just lemme know where I should ask please.
20:11:18
pjb
Sorry, I don't see any documentation there, only violet buttons on some strange web page.