freenode/lisp - IRC Chatlog
Search
18:57:56
beach
Fare: Why do you ask? I use it in a few applications, including Climacs, Second Climacs, Gsharp, Compta, TransClime. And my favorite co-author uses it in at least two research applications in the domain of rewrite systems.
19:01:17
beach
Fare: Other people use it much more than I do, but I haven't looked at the full set of applications.
19:09:25
beach
That one and Clouseau are more like programming tools than end-user applications of course.
19:13:14
PuercoPop
shka: The documentation of maxpc is generated with https://github.com/inters/geneva
19:15:50
jackdaniel
regarding silica / mcclim dillema, I'm not sure if it can be handled at runtime, since silica is a package and reader would protest, if its not created
19:17:39
jackdaniel
either way I think that all packages shipped *with* mcclim should have direct dependency on mcclim system (even if most of them would work on other clim implementations)
19:23:50
jackdaniel
(until ASDF finds a way to represent virtual systems providing same functionality)
19:29:17
beach
jackdaniel: I think the assumption was that some of these systems will be built with some other CLIM implementation than McCLIM. I am convinced that this will not happen, so it is fairly safe to remove this read-time conditional and, with it, the reference to the SILICA package.
19:35:54
PuercoPop
jackdaniel: the VCS is there for future porters sake. Just remove everything in one commit
19:40:30
Fare
jackdaniel: you'd define a common interface that has its own package; only the implementation would use silica.
19:41:04
PuercoPop
Fare: it is not documented well enough. But that answers how uses McCLIM nowadays as well :D
19:41:49
jackdaniel
how do I switch the implementation then? without altering the system definition – from the client package?
19:42:46
shka
PuercoPop: do you happen to know if it is possible to add support for another markup inside geneva?
19:45:38
fiddlerwoaroof
Ah, old release notes indicate define-setf-method was renamed to define-setf-expander from cltl1->clhs
19:46:05
PuercoPop
shka: no I haven't looked into it. I remembered because the author mentioned geneva in a blog post. It is possible in common-doc
19:50:52
PuercoPop
shka: Geneva's readme says there is an API to configure the input so it apparently can
19:53:37
_rumbler31
I"m running into a case where bt:join-thread seems to hang in spite of thread-alive-p returning nil
20:04:22
_rumbler31
so in my application, I use a lock to change a state that a thread checks for in its inner loop to determine when to break out.
20:04:44
_rumbler31
I have a few of these threads, and in the thread responsible for closing them all down, I issue a series of bt:join-threads on them all
20:06:16
_rumbler31
when i call bt:join-thread on these threads, the calls hang if they have already terminated, it seems
20:10:24
_rumbler31
or, is a thread not allowed to invoke bt:join-thread on a thread it didn't start?
20:22:51
_rumbler31
oddly enough, if I wait for the thread to enter reset state, the first call to join-thread returns and the second hangs. but in code where I use these forms, I'm only calling join-thread once on each thread
21:01:36
jasom
_rumbler31: BT is underspecified in many places; I wouldn't be too surprised if that worked on sbcl, for example.
21:02:12
jasom
"Wait until THREAD terminates. If THREAD has already terminated, return immediately. "
22:05:20
pjb
jasom: However, I'd expect some implementation to provide a rather thin layer over pthread.
22:21:11
_rumbler31
except that it must be done, unless the thread in question calls pthread_detach, at least according to the man pags
22:21:54
pjb
_rumbler31: basically, thread can exit returning a status, and pthread_join lets you retrieve this status. It's the parallel to fork and wait.
22:22:08
_rumbler31
pages. what I suspect is happening is that the threading model in ccl is expecting that if a user calls join on a thread, then the user code is given priority to capture the return value, otherwise it must be done some other way by the runtime
22:23:47
_rumbler31
yes, so it seems like any thread can retrieve this status, but it is undefined if more than one of these join calls have been invoked on the same thread, and further that it is expected that once the join was called, that the "resources" for the joined thread are removed, s.t. subsequent calls to join on the thread are unspecified
22:26:08
_rumbler31
also.. I have a closure stored in a global. when I invoke (mapcar (lambda (closure) (funcall closure 'stop)) '(*global1*...))
22:27:22
_rumbler31
wherease with (list *global1*...) it works fine. I assumed that *global1* was "the same as" a function stored on the symbol *global1* that happened to be a closure instead
22:28:23
Bike
*global1* is a symbol. '*global1* evaluates to a symbol, since it's quoted. *global1* evaluates to a closure.
22:30:56
_rumbler31
fe[nl]ix: I know my code is only calling join once, so I assume that ccl is doing it for me in some cases. I wrote my handling code assuming that join-thread would know if one of my threads had been stopped long before the call. this seems to be wrong, and since I have only one place in the code where I call join I assume it is being done to reclaim the thread "storage" since the runtime can tell that my us
22:31:53
phoe
I want to remove them inside the whole spec and replace them with something that is more contemporary - references to pathnames common on Unixlikes and Microsoft systems.
22:32:16
_rumbler31
phoe: Bike: so (defun creates a symbol with a function attached as a member of the new symbol
22:34:33
Xach
phoe: At some point, it is helpful to know that namestrings are arbitrary and up to the whims of the implementor, so there isn't a persistent assumption that a namestring to lisp is a pathname string to the OS. I think examples that are a bit alien can help get that idea across.
22:35:35
Bike
phoe: surely by copying all these examples you've noticed that that's the case with a lot of them
22:38:15
phoe
Xach: I'll check them on my own machine beforehand and then consult the proposed changes with #lisp.
22:39:09
phoe
There's no point in asking #lisp for reviewing something that doesn't work for me locally.
22:39:41
Xach
phoe: I mean, checking against an implementation merely tells you what an implementation does, not what every implementation should do, or what has undefined consequences.
22:40:39
Xach
Sure - but test from positive knowledge of the spec, rather than consulting an oracle with a guess.
0:15:42
akkad
it only works on Lisp supported systems that work with (declaim optimize (speed 3)(debug 0)(safety 0))
0:18:50
TruePika
I mean, this is _technically_ possible to work around, but I need to use :: which is ugly and prone to break
0:26:26
TruePika
I can just define a simple structure in the "parent" of the depchain, which the "child" can pass data through
0:38:41
TruePika
Bike: IIRC Far Lands were from using either floats or not-large-enough ints in the worldgen code
0:40:22
TruePika
raydeejay: there was also a weird thing Terraria.Main.FlameTexture and Terraria.Main.flameTexture; that caused Powershell to complain quite a bit
0:41:27
TruePika
yeah, I can't call any methods which require an instance of the `Terraria.Main` class, as a result
0:41:52
TruePika
not that I really need anything from there right now, esp. not for map dumping code
0:42:22
raydeejay
there's a doc out there detailing the format of the world file, in case you want to go that route
0:42:52
TruePika
raydeejay: nope, this is specifically the _map_ file, and I've already documented it and have working code for reading it
0:43:17
TruePika
I'm just working on getting some more accurate render code handled (which depends on stuff not saved in the .map file)
0:43:43
TruePika
for instance, the sky has a gradient which depends on the surface reference position
0:44:09
TruePika
I figure that users can figure these out themselves if they really want accurate maps, but I'...wtf
0:48:04
TruePika
I've been straying away from writing multiline docstrings because Vim causes problems with autoindent
0:50:28
TruePika
* goes to confirm these reference altitudes should be integers before committing with '(unsigned-integer 32)
0:52:31
TruePika
Petit_Dejeuner: lol, fun fact: this is actually from the edge of space and goes down
0:53:12
raydeejay
my advice when trying to figure out why something in terraria is implemented in a particular way is: don't
2:16:14
TruePika
of course this will lead to the question as to how easy it is to get CLisp to compile stand-alone binaries
2:17:41
TruePika
and until I know what the problem is, I'm not going to be making builds for distribution with SBCL
2:19:29
TruePika
I mean, the main issue is that most likely more than 99.9% of people who play Terraria lack a CL environment, so my code is of limited use without providing binaries
2:46:31
axion
You don't really need any extra library to do this. You already have command line argument handling with UIOP.
2:47:37
pillton
I'm not sure I agree with that. I use https://github.com/markcox80/lisp-executable for example.
3:58:45
TruePika
loke: well I can't use SBCL since it locks up my system entirely when I run it under Windows
4:02:12
TruePika
I might look into it eventually, but I don't want to deal with any potential problems which would then result in no e.g. REPL
4:07:51
loke
The NXT is slow as, well... something really really slow. As long as I run ECL with the interpreter it's acceptable in the REPL but if I accidentally press C-c C-c to compile a function I have to wait... a long time.
4:09:51
loke
pillton: I don't think you're connected in realtime to a REPL on a probe though? The latency would be very painful.
4:57:12
TruePika
;;; ** BITSTREAM-BUFFER-BIT-COUNT is not a valid type specifier.An error occurred during initialization:
5:17:01
Bike
it looks like that type is defined in types.lisp, but bitstream.lisp doesn't depend on that file
5:47:12
drmeister
beach: I discovered a source of trouble with my gf dispatch implementation. I moved the stamp into what you call the rack - previously it was in the header.
5:48:14
drmeister
It was in the header previously because a lot of Clasp objects are C++ classes and they don't have a rack. Fields are in classes that contain the header.
6:16:41
jackdaniel
TruePika: ECL doesn't need C compiler, then everything is comipled to the bytecode
6:20:04
TruePika
jackdaniel: right now I'm having trouble figuring out the proper way to define the demo app
6:20:53
TruePika
the problem is that I have a lot of things in quicklisp, and there's the project's code itself as well
6:21:48
TruePika
examples/asdf/ has everything coming through an additional .asd, which I can't get detected for some reason
6:21:54
jackdaniel
I had recently a report of ASDF not handling some dependencies correctly, that's a recurring problem with it unfortunately
6:25:39
jackdaniel
yes, but modifying central-registry (unless you put it in your rc file) is also only in the current image
6:26:12
TruePika
I was more referring to the system (e.g. if I invoke another `ecl` or even `sbcl`, I don't want to see it)
6:26:49
jackdaniel
for what it's worth you may even type your system definition in the repl if you really want to
6:28:57
TruePika
so right now I have a demo-app/ containing a .asd, a .lisp for it, and an ecl-build.lisp -- does this sound reasonable?
6:29:44
loke
jackdaniel: There is also a .o file. Can you tell me what the difference between the fasl and the .o is?
6:31:17
jackdaniel
https://common-lisp.net/project/ecl/static/ecldoc/Extensions.html#Compiling-with-ECL
6:32:16
loke
jackdaniel: would it make sense to have DISASSEMBLE simply call objdump? Similar to how ABCL calls jad?
6:33:53
jackdaniel
btw, if you want to see C code expansion (what's arguably something you may want), try (disassemble '(lambda () (list 1 2 3)))
6:34:52
jackdaniel
but ECL doesn't know what are the addresses of each function – native fasls are loaded by means of dlopen
6:35:28
jackdaniel
and if you have bytecompiled function, disassembly will work for it showing you disassembled bytecode
6:36:04
loke
jackdaniel: That's less important. In 99% of cases, I use DISASSEMBLE in order to check the results of type declarations.
6:37:20
jackdaniel
either way, disassemble works for bytecode-compiled functions as expected, and shows the C expansion if you feed it with a definition
6:38:18
jackdaniel
TruePika: it's question to ASDF. make-build has :move-here "/tmp/foo/" argument though
6:42:52
parjanya
hey :) any books/sites suggestions for me to learn Lisp? I know Python but this is another thing altogether, halp :-o
6:43:05
minion
parjanya: direct your attention towards 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).
6:44:02
parjanya
All I wanted to do was to edit tables in markdown; so I installed emacs, and here I am ; ))
6:44:03
loke
PCL is great for programmers who already know other languages and only need to learn Lisp.
6:44:53
minion
parjanya: have a 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/
6:44:53
loke
parjanya: Is your goal to configure Emacs? Then you should know that Emacs is programmed in Emacs Lisp, which is a different language (but quite similar) to Common Lisp (which is the topic of this channel)
6:45:38
jackdaniel
heh, ANSI Common Lisp by Paul Graham is a pretty cool book too, minion doesn't know about it apparently
6:46:36
loke
parjanya: CLR assumes you already know Lisp but want to _do_ things: http://weitz.de/cl-recipes/
6:47:30
TruePika
Condition of type: SIMPLE-ERROR \ Package ((ASDF/SYSTEM . #<ASDF/SYSTEM package>)) referenced in compiled file \ NIL \ but has not been created
6:50:48
loke
parjanya: A symbol is really nothing more than a unique pointer. An address, a unique number if you like. A symbol has a name which you can use to find that value... So the symbol FOO always refers to the same magic value.
6:52:02
loke
There is, of course, more to it. But unless I know where your confusion is, I can't really explain it.
6:52:29
loke
parjanya: And that memory address contains some information about the symbol (like its name, package, property list and a few other things)