freenode/lisp - IRC Chatlog
Search
4:00:39
Bike
looks like you need to set the 'common-lisp-indent-function' property of the thing to 'defun'. no idea what that means but it sounds possible
7:59:10
beach
So I think I understand why it is tempting to parse lambda lists using some ad-hoc code rather than some existing parsing technique. Existing parsing techniques assume a linear sequence of tokens, but lambda lists can be nested, and no existing parsing technique can handle that.
7:59:56
beach
But ad-hoc code won't do for Cleavir, because I need for the client Common Lisp system to be able to customize the lambda-list parsers.
8:00:35
beach
So I need to adapt some existing technique to make it able to handle nested lambda lists. That should be fun.
8:27:48
shrdlu68_
"Remember that you can use e.g. tcpflow to record TCP traffic to files, which can then be used as samples for radamsa."
8:30:14
shrdlu68_
It's trivial to make cl-tls dump ssl packets to a file. But then when radamsa tries to fuzz cl-tls live (or any other ssl implementation), it can only go so far because it is not ssl-capable.
8:32:51
shrdlu68
But it would be very useful for fuzzing some parts of cl-tls, like the x509 decoder and the ASN.1 decoder.
9:29:34
pjb
shrdlu68: there are other fuzzers that take into account the paths taken by the program (they have to instrument it), to explore and find the right input to exercise all the paths.
9:58:19
pjb
Now, of course, http://lcamtuf.coredump.cx/afl/ instruments C code. Perhaps it could be adapted to instrument CL code (using something like eg. cl-stepper).
11:24:21
p_l
pjb: there's a story (legend or truth, who knows) that some intern at Google melted a rack while fuzzing libpng...
11:26:15
p_l
sounds like common problem whenever someone touches x509 (and that includes big commercial players)
11:27:37
p_l
I do as well, but ASN.1 shows in so many places that having a single, good implementation that is portable it would be great
11:28:18
p_l
shrdlu68: I often find myself thinking that OSI protocol stack etc. was probably better for *today* even if it was too heavy in the past
11:28:48
shrdlu68
p_l: I'll put cl-tls on github i the next hour or so. The ASN.1 code so far is mostly a prototype, but I'd like your opinion on it.
11:29:38
shrdlu68
It's not as comprehensive as I'd like at this point, but that's something I'll work on.
11:31:21
shrdlu68
I noticed the work I was doing was something that could be automatable. Mostly iterating over an octet vector while ensuring types match, lengths are okay, etc.
11:31:26
p_l
shrdlu68: there's a lot of that done already in cl-snmp, but ideally it would be a separate library/toolkit
12:29:50
acow
can i ask what the values of (subtypep 'integer 'signed-byte) and (subtypep 'signed-byte 'integer should be?)
12:34:46
acow
Yep, saw the hyperspec, but I'm just concerned that I'm either going crazy or its too late at night...
12:35:53
beach
I mean, that behavior on the part of SBCL is correct according to the Common Lisp HyperSpec.
12:36:52
beach
"The atomic type specifier signed-byte denotes the same type as is denoted by the type specifier integer"
12:53:49
shka_
secondly, i think that your code is more or less correct, but now i have to check what sbcl does here
14:39:13
drmeister
beach: In your approach to fast GF dispatch - what needs to be considered in a multithreaded environment? (1) Generic function call-history needs to be updated atomically. (2) The funcallable-instance function needs to be updated so that it reflects the most recent generic-function call history?
14:40:16
drmeister
This was my big motivator for incorporating multi-threading into Clasp now - the fast GF dispatch issues.
14:59:02
drmeister
froggey: Hello - and you were able to run the DOOM C source code through it and the product runs?
15:09:00
froggey
I wrote a new SDL backend, which doom links against. the SDL backend bolts on to some graphics syscalls provided by the runtime
15:09:46
froggey
and the runtime implements graphics using either mezzano's native gui or lispbuilder-sdl on other implementations
15:10:29
froggey
libsdl - https://www.libsdl.org/ a C library that provides a basic platform independent graphics api
15:12:16
froggey
the translator (the program that converts LLVM bitcode files to CL source) is written in C++ because I wanted to use LLVM's C++ API. I found the C API is missing bits and pieces
15:13:10
drmeister
So you read bitcode and then iterate through the functions/basic-blocks/instructions and write out CL?
15:16:18
drmeister
In terms of the level of difficulty of supporting it vs generating CL for the rest of llvm-IR?
15:17:09
froggey
I'm not sure it's possible to implement DWARF-style unwinding directly, but there's an LLVM pass for converting invoke instructions to calls to setjmp/longjmp
15:18:30
froggey
to get exceptions working I think I'd have to make it run that pass, implement whatever runtime requirements that pass has, and get libc++abi running
15:19:29
froggey
those would be the major tasks, I probably missed something & haven't looked into the details
15:22:45
pjb
There's a difference between signed-byte and integer however; signed-byte is a type, while integer is a system-class.
15:23:58
drmeister
https://docs.google.com/document/d/1Bub1bV_IIDZDhdld-zTULE2Sv0KNbOXk33KOW8o0aR4/edit#heading=h.whtnf7s9ugr9
15:24:26
froggey
drmeister: whoops, it was written by the PNaCl people, not emscripten. afaik it's part of their llvm fork and not in the main llvm repo
15:24:52
froggey
https://chromium.googlesource.com/native_client/pnacl-llvm/+/master/lib/Transforms/NaCl/PNaClSjLjEH.cpp
15:41:34
froggey
it's a bit complicated. were you thinking of using it for something? I can't think of any use for a transform like that aside from weird llvm backends
15:49:36
drmeister
No - I'm interested in learning more about how people deal with C++ exception handling in different contexts. It's a less central feature of C++ and it's complicated and so it doesn't get much support.
15:56:24
fsmunoz
Is anyone using gmane for mailing lists hosted by common-lisp.net? I received a 550 Reverse DNS verification failed and I'm trying to see if it's something on my end.