freenode/lisp - IRC Chatlog
Search
4:08:42
drmeister
Does it make sense that (local-time:parse-timestring "2020-01-01") -> @2019-12-31T19:00:00.000000-05:00
4:12:27
drmeister
Hmm, maybe that's why - maybe I'm parsing 2020-01-01 in GMT and I'm in EST and so it's printing 2020-01-01/GMT in EST and the world is a sphere?
4:14:19
ck_
but it's the other way around, you're parsing 2020-01-01 as EST, which gets printed as GMT-offset
4:16:32
drmeister
If I parse 2020-01-01 midnight EST wouldn't that be 2020-01-01 5:00 am in the GST timezone?
4:19:02
drmeister
All I'm sure about is you europeans disappear from IRC in my evening and show up just before I collapse in bed. :-)
4:21:54
drmeister
If I force my timezone to UTC then parsing and printing gives the expected result.
4:23:32
ck_
and what does the '@' signify in the line you pasted here a moment ago? on that paste, the 'z' is for zulu / utc, right
4:42:11
drmeister
The Naggum paper explains it. If I provide the date but not the time I get ... "absolute time with time omitted, defaulting to 00:00:00Z."
4:43:03
drmeister
That's what I get for my pollyanna assumption that by leaving out the time it would just assume my timezone.
5:17:02
ck_
so the "-05:00" is a timezone signifier instead of an offset? I don't think I've ever seen that before
7:25:42
beach
Does anyone recall having seen the term "contents vector" for the slot storage of standard objects, perhaps in the AMOP? Or did I make it up?
7:29:32
beach
I specifically meant the term "contents vector". I don't think "slot index" is used, but "slot location" is.
8:55:56
ArthurStrong
Sometimes my prank can last 3-5 lines until interlocutor starts to suspect something
9:03:18
ArthurStrong
What are your favorite educational micro-LISP implementations? Like Norvig wrote in Python?
9:04:30
no-defun-allowed
Probably sl3.c, which floats around in several places. It even has a proper reader (somehow in C). I can't think of many small Common Lisp implementations.
9:07:02
ArthurStrong
By the way. Once upon a time I was reading a book about Lisp. ANd there was something like this in preface: "LISP is a good prototyping language..." Can anyone remember what book called LISP prototyping language in preface or somewhere near beginning?
9:10:25
jackdaniel
please stick to the channel topic which is Common Lisp (other lisps may be discussed on ##lisp)
9:14:14
jackdaniel
maybe, but people interested in common lisp and operators of this channel decided that moving would be a lot of effort for little gain
9:14:20
no-defun-allowed
CLISP is an implementation of Common Lisp, the only acronym that I believe is widely accepted as that is CL.
9:15:45
jackdaniel
to complete the picture, there is also #lispcafe for chitchat not necessarily related to lisp
9:17:14
edgar-rft
ArthurStrong: here's a list of irc lisp channels and what they're good for: https://www.cliki.net/IRC
9:18:05
ArthurStrong
On a completely unrelated note, I once heard about (jokish?) band named Duran Duran Duran :)
9:33:15
aeth
zhouzihao: an operating system written in Common Lisp. https://github.com/froggey/Mezzano
9:52:39
Duuqnd
beach: "freestanding code" means code that does not rely on an already established environment.
9:54:15
jackdaniel
i.e linux kernel also relies on its own estabilished environment to function correctly
9:54:45
Duuqnd
beach: I'm not sure how Mezzano works, but I think it includes a compiler that can do freestanding code.
9:55:16
beach
Duuqnd: That curious, since you just said you don't know of any system that compiles to freestanding code.
9:55:43
Duuqnd
beach: Not any standalone system. And they probably exist, I just haven't heard of them.
9:56:54
beach
Duuqnd: Either you have heard of Mezzano or you have not. You can't have it both ways.
9:56:55
jackdaniel
the facts are: there are examples of CL running on bare metal (Mezzano and Movitz as beach mentioned); there were full featured operating systems written in Lisp (on specialized hardwer, so called lisp machines)
10:00:43
Duuqnd
How about I rephrase what I said before. Mezzano includes a CL implementation, but Mezzano itself it more than that.
10:01:10
jackdaniel
if what you say is: Common Lisp standard does not specify drivers and operating system then you are correct
10:01:11
phoe
well, yes, SBCL doesn't include code for dealing with hardware or graphics or its own thread scheduler
10:03:34
jackdaniel
ACTION is tempted to throw in a statement like "but lisp is interpreted" and watch the world burn ;-) see you later
10:08:44
no-defun-allowed
But my 2¢ is that code generated by Mezzano (and I do think Movitz interpreted any functions defined in the OS) isn't freestanding, but the runtime which it utilises works directly with hardware, rather than calling into some other kernel or libc or anything like that.
10:10:25
no-defun-allowed
Yeah, there's a very large list of options you have to give to GCC to create "freestanding" code, and you probably want to set up your own cross-compiler to generate proper freestanding code.
10:11:49
no-defun-allowed
Then I would suggest that CL is more meaningless to compile freestanding than C, but all of the C specific uses of C that you C in kernels are undefined behaviour that the kernel writer likes.
10:12:00
beach
It appears that we do not have an agreed-upon definition of "freestanding", so discussing whether some compiler generates such code is not going to lead anywhere until such a definition is established.
10:13:12
Duuqnd
beach: I agree. It's hard to discuss things that nobody can agree on the definition of.
10:13:44
phoe
beach: it seems that it means that freestanding code cannot depend on anything in the OS because there is no OS to depend on - so you cannot call into libc or make syscalls and so on.
10:15:07
beach
phoe: So then, the Mezzano system is freestanding because it *is* the OS, but the Mezzano compiler does not generate freestanding code, because it relies on the Mezzano operating system for its execution.
10:15:14
phoe
gcc solves this by bundling/statically linking libc into the generated executables - in theory, so could a Lisp implementation, except it would need to e.g. use BIOS/EFI calls to write/read from standard input and storage
10:26:53
easye
phoe: Don't forget to time your return to the surface. Don't want to get the Bends from going that deep...
10:39:47
no-defun-allowed
Universal Greeting Time: http://www.total-knowledge.com/~ilya/mips/ugt.html
10:39:59
no-defun-allowed
"It states that it is always morning when person comes into a channel, and it is always late night when person leaves. Local time of any member of channel is irrelevant. Resistance is futile. Your ass will be laminated."
11:16:20
phoe
CLHS ~F says: If it is impossible to print the value in the required format in a field of width w, then one of two actions is taken. (...) If the overflowchar parameter is omitted, then the scaled value is printed using more than w characters, as many more as may be needed.
11:22:25
jackdaniel
otherwise it msut be printed, because 14. is not a float, minimal number of characters is four not 3 (in that case)
11:35:12
phoe
if the float doesn't fit in the required width and no overflow character is provided, then we print everything
11:35:18
phoe
CLHS ~F says: If it is impossible to print the value in the required format in a field of width w, then one of two actions is taken. (...) If the overflowchar parameter is omitted, then the scaled value is printed using more than w characters, as many more as may be needed.
13:12:11
ck_
sigh, what are you doing, phoe? First you spoil the integers with the (loop .. finally) bug. Now this. What are we supposed to retreat to? Character-based programming?
13:13:40
phoe
if it didn't exist, then I wouldn't have got the idea of fixing CCL up to pass more of these
13:17:05
phoe
corporate level would be to blame X3J13 for standardizing the behaviour that we are now forced to comply with in order to pass ANSI-TEST
13:20:07
phoe
at a startup level, responsibility is individual, so blaming individuals is permitted; at a corporate level, responsibility belongs to groups of people, and so we must grab larger cannons - preferably these who lay the closest to the corporate legal team.
14:34:04
beach
I am reading this page: metamodular.com/CLOS-MOP/instance-structure-protocol.html and I have a question...
14:34:41
beach
Does this page try to tell me that the location of the first slot is 0, or is it giving me the option to start at any other positive integer?
14:36:12
beach
"Locations are non-negative integers. For a given class, the locations increase consecutively, in the order that the directly accessible slots appear in the list of effective slots."
14:36:29
pjb
beach: I thought the MOP allowed you to implement objects where the storage of the slots wasn't even in-line!
14:38:09
pjb
beach: this page only says that location>=0 and that for all slots in the effective slot list, location[i+1]=1+location[i]
14:38:44
beach
Yes, but we also know that the AMOP is not a fantastic specification, so I would like to know whether they just missed that part.
14:40:47
pjb
beach: perhaps they meant to start counting from 0. But in presence of superclasses, one could assume that lower slot numbers refer to the slots of the superclass.
14:41:30
pjb
beach: but the important point is that those "location" indices are purely an API convention. It doesn't mean the slots are stored at corresponding memory location, or in the memory at all.
14:43:20
Bike
technicaly i guess they could be stored in an out of line vector or something. like you have a hash table from objects to storage vectors? that would be a ridiculous implementation, of course
14:43:47
Bike
i don't think there's much else in mop that relies on any properties of the instance slot locations, though
14:44:00
Bike
there's slot-definition-location, and (funcallable-)standard-instance-access, and I think that's it?
14:44:18
pjb
beach: also note that this concerns only "directly accessible slots" which are :allocation :instance and :type t <<< slots of other types could be allocated elsewhere and otherwise.