freenode/#lisp - IRC Chatlog
Search
14:26:21
jeosol_
anyone following AWS summit in NY. It will be nice to see how CL plays into most of these. As a single developer, I am trying to see how I get my apps to scale if I get to that step
14:31:58
jeosol_
jmercouris: thanks for your input about running my remote jobs. I saw it but could not respond back. My use case is a bit crazy, something between running in slime and running jobs on LINUX command line after launching SBCL
14:33:22
jeosol_
So what I do normally, I have a monitor on one side with code, and some linux terminals. Since I am testing different configs, I usually create a new defun, and just run it on the a linux terminal.
14:37:14
jeosol_
JuanDuagherty: Sorry I didn't make that clear enough, but yes, AWS -> Amazon Web Services
14:38:10
JuanDaugherty
most 'apps' don't even have parallelization opportunities other than serving many users and that's highly routinized by such places and various pkgs now
14:40:48
JuanDaugherty
they do have some offerings in those categories, i'd be surprised if they use lisp though
14:41:05
jeosol_
I have had interests in Gabor Melis AI/ML library and the CLML library, and wanted to pick these up. Latter still have issues with license. For Gabor's code, I made small changes to work in a recent SBCL license,
14:41:37
jeosol_
I trained the model on my linux box, it was taking over two days to train and I killed the job. I think Gabor said he used GPU machines
14:42:14
jeosol_
Yes, Juan, they have several offerings. I think it is mostly C++, Python and Java based on the low-level frameworks
14:42:46
jeosol_
JuanDuagherty: Yes, that is the plan eventually, take up the code there and if I can things to improve
15:01:40
jeosol_
JuanD ...: I didn't get your lparallel comment, it was probably from a different conversation
15:13:51
jeosol_
I will like to discuss with folks running lisp related applications on the web. Even when using other language frameworks around the core engine in lisp.
15:21:03
jeosol_
The intent was to connect and not discuss that here. I do understand the focus of this forum.
15:23:04
JuanDaugherty
based on what I've looked at since we started talking, as far as common lisp is concerned lparallel still seems the default choice, imo anyway
15:24:09
jeosol_
Like I said, I am just looking for users with similar issues as I am facing so we can share ideas. Intent was not to discuss that here ..
15:39:00
beach
Here is an idea: When I compile SICL code to HIR on SBCL, the functions created would be subclasses of STANDARD-FUNCALLABLE-OBJECT. I would have a slot in that subclass that contains a "code object".
15:39:07
beach
The code object would have information about mappings from source locations to values of the "program counter" in the form of a place in the HIR code. It would also have tables that map HIR locations to other HIR locations for various debugger stepping functions.
15:39:19
beach
At strategic points in the HIR code, I generate code to interrogate a hash table to determine whether the current thread runs under the control of the debugger. If so, it further interrogates to determine whether it is at a breakpoint.
15:39:20
beach
If so, it waits on a semaphore that is associated with the thread. The debugger uses the code object to find source location for the breakpoint. The debugger can set more breakpoints, and it then signals on the semaphore to make the application thread continue its execution.
15:46:20
TMA
beach: ordinary debuggers use hardware breakpoints (interrupt when program counter is equal to this value) or just modify the code to "interrupt now"; I think you might achieve the one-thread debuggee, other thread runs the same code with duplicating the debugged code with breakpoints (so as the HW not to triger and to have modifiable copy)
15:47:35
TMA
beach: the only caveat is that (funcall (symbol-function XXX) ...) equivalent machinery needs to use the debugee code if one is available
15:48:12
beach
TMA: Not sure I follow. But I can't use hardware breakpoints here, because I don't want to dig deep into SBCL to find out low-level details.
15:49:07
jeosol_
jmercouris: thanks for the info. It seems my recent issues are out of focus for this forum. I'll need to follow up later.
15:49:56
beach
TMA: I also don't want to modify the code, even though it might be possible to not break in some situations.
15:51:38
TMA
beach: I see. With those two additional conditions other debuggers are not subjected to, you do not have much options except to instrument the code heavily as per your design.
15:52:22
beach
Yes, that decision was already made. This suggestion was about actually running and debugging SICL code inside SBCL.
15:54:58
beach
TMA: By instrumenting the code this way, in the final system I can trivially debug system code like SYMBOL-VALUE without having the system die on me. And I can debug the debugger.
15:56:43
beach
Hardware breakpoints may work in the final system. But I need to figure out how to avoid stopping when the thread is not debugged.
16:24:57
beach
What's the name of that library that provides a uniform way of examining backtraces across implementation?
16:27:49
Xach
on the internet, it can be difficult to distinguish ironic stupidity from legitimate stupidity
16:28:30
beach
What I would need for my suggested debugging interface is to get to the function object that is executing in a particular stack frame.
18:12:21
pfdietz2
I read this paper on mutation testing at Google. I was surprised to see one of the 7 languages involved was Common Lisp. https://ai.google/research/pubs/pub46584
22:26:09
whartung
I dunno if he’s hacking anything right now, but he apparently drifted over to Python a long time ago.
23:45:14
drduck
Can anyone speak on if there are any differences in the hot reload capabilities SLIME provides lisp compared to that of which an IDE provides java?
23:55:01
whartung
I don’t know exactly what slime does, but we know what CL can do. Basically the REPL, “LOAD”, and “COMPILE”. All of those impact the environment in subtle, different ways (which I can’t detail, only knowing that there’s differences.)
23:55:53
whartung
and the symbol table is simply one aspect of the global environment, but an important one.
23:56:19
whartung
the SYMBOLS remain (unless they’re specifically unintern’ed), but what they reference changes.
23:58:15
whartung
no, since (normally), Lisp continues do dereference stuff through symbols (when they have global scope), then you have dynamic changes to a running system. This can clearly be adjusted trhough efficiency hints and stuff like that, but at the high level, if you have (defun x () (print “hello world”)), and something calls (x), if you later do (defun x () (print “goodbye world”)), that existing reference x will now say “goodbye” instead of “hello
23:59:22
whartung
So, that’s what SLIME does, is it “simply” updates the global environment, and then the chips fall where they may.
0:00:04
whartung
I recall, long ago, with Franz lisp, running multi-threaded, having a routine that was just running (x) in a loop, and seeing it go from “hello” to “goodbye” when I re-defun’d x. “Hazah!”