<White_Flame>
I haven't looked into ABCL's libs, but usocket could very well also pop into java code in its ABCL backend to do networking. Doesn't really matter to the user of the lib
<johntalent>
okay, so usocket is a lib compatible with abcl.
<Oladon>
Hrm. Anyone have any advice on motivating myself to write a BBCode parser? :P
wxie has quit [Quit: wxie]
<White_Flame>
usocket is a portability library that exposes various implementations' networking functionality in a single portable interface
wxie has joined #lisp
<White_Flame>
as well as has some of its own convenience utilities on top
wxie1 has joined #lisp
<Josh_2>
Oladon: that video where the fella goes "just do it" over and over
wxie has quit [Ping timeout: 264 seconds]
wxie1 is now known as wxie
nicktick has joined #lisp
<White_Flame>
I do have a parser that could probably do it quite easily, but it isn't as complete as I'd like
<White_Flame>
and is still in flux
oxum has joined #lisp
<White_Flame>
with bbcode, if a tag is unbalanced then the tag text just goes out raw, right?
<White_Flame>
Oladon: is this for open source/hobby stuff or for work?
<Oladon>
White_Flame: Hobby stuff
<Oladon>
I think the unbalanced behavior is undefined
<White_Flame>
although, I don't have parameterized rules yet, so each [b][/b], [tt][/tt] etc pairing would need its own rule, which is kinda lame
<White_Flame>
but I did mash in the capability to pass through bad nesting
oxum has quit [Ping timeout: 240 seconds]
terpri__ has joined #lisp
terpri_ has quit [Ping timeout: 260 seconds]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
cmack has joined #lisp
terpri__ has quit [Remote host closed the connection]
terpri__ has joined #lisp
vaporatorius__ has quit [Read error: Connection reset by peer]
vaporatorius__ has joined #lisp
vidak` has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
jesse1010 has quit [Ping timeout: 258 seconds]
kaftejiman has quit [Remote host closed the connection]
dominic34 has joined #lisp
gaqwas has quit [Ping timeout: 256 seconds]
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
libertyprime has quit [Read error: Connection reset by peer]
libertyprime has joined #lisp
freshpassport has joined #lisp
freshpassport has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
viata has joined #lisp
wxie1 has joined #lisp
wxie has quit [Ping timeout: 244 seconds]
wxie1 is now known as wxie
johntalent has quit [Quit: leaving]
Misha_B has joined #lisp
<Oladon>
White_Flame: Hrm... that's quite straightforward. I might've skipped the part where I need to decide what to do with it once it's parsed, though
ebrasca has quit [Remote host closed the connection]
<White_Flame>
yeah, I started from scratch, and from my hatred of regex, to distill what needs to be done to implement new basic text-based langauges
<White_Flame>
and to me, the biggest helper is to split the input into (multi-character) punctuators, tokens, and whitespace
<White_Flame>
in this bbcode, I didn't set up any whitespace, so all text spans between punctuation counts as text tokens inclusive of whitespace, newlines, etc
<White_Flame>
this is destined for open source, but I'm still making breaking changes to it so I haven't made it public
<White_Flame>
but if you figure out what you want to do, and want to try this, I can put something up
quazimodo has quit [Ping timeout: 264 seconds]
quazimodo has joined #lisp
ech has quit [Ping timeout: 240 seconds]
ahungry has joined #lisp
wxie has quit [Ping timeout: 246 seconds]
dominic34 has quit [Ping timeout: 258 seconds]
ech has joined #lisp
shangul has joined #lisp
<Oladon>
Yeah, that makes sense. Thankee, really appreciate the offer!
EvW has joined #lisp
<beach>
Good morning everyone!
<Oladon>
Morning beach!
freshpassport has joined #lisp
terpri__ is now known as terpri
_paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
ArthurSt1ong has quit [Quit: leaving]
ArthurStrong has joined #lisp
paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
Lycurgus has joined #lisp
Bike has quit [Quit: leaving]
Lycurgus has quit [Remote host closed the connection]
urek has joined #lisp
viata has quit [Ping timeout: 246 seconds]
EvW has quit [Ping timeout: 272 seconds]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
ArthurStrong has left #lisp [#lisp]
pikajew has joined #lisp
sdumi has quit [Ping timeout: 264 seconds]
narimiran has joined #lisp
sdumi has joined #lisp
nikkal has joined #lisp
edgar-rft has quit [Quit: Leaving]
sdumi has quit [Read error: Connection reset by peer]
orivej has joined #lisp
<White_Flame>
As a dog returns to its vomit, so too does a programmer return to unfinished problems.
<White_Flame>
Now that I added in variables, so that there's a test to ensure that 2 separate tokens match, I think this actually might be everything required
<White_Flame>
it only builds a nested tag structure if a keyword is used between brackets, and it's balanced properly. Unbalanced tags & unknown stuff between the brackets simply leaves the tokens linear
<White_Flame>
I'll have to do some minor surgery to extract this from the current code base into an indepent file for upload, and that won't be today
<White_Flame>
*independent
EvW1 has joined #lisp
space_otter has joined #lisp
sauvin has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
easye has joined #lisp
nicktick has quit [Remote host closed the connection]
JohnMS_WORK has joined #lisp
nicktick has joined #lisp
EvW1 has quit [Ping timeout: 260 seconds]
nicktick has quit [Ping timeout: 246 seconds]
ahungry has quit [Remote host closed the connection]
shka_ has joined #lisp
gravicappa has joined #lisp
easye has quit [Ping timeout: 256 seconds]
jonatack_ has joined #lisp
thijso has quit [Ping timeout: 260 seconds]
jonatack has quit [Ping timeout: 264 seconds]
nicktick has joined #lisp
wxie has joined #lisp
easye has joined #lisp
thijso has joined #lisp
heisig has joined #lisp
bsd4me has quit [Quit: Leaving]
kinope^ has joined #lisp
<kinope^>
Hey all! Is it possible to return two separate forms from a macro?
<kinope^>
I want to insert two boilerplate clauses at the end of a case if possible
<ecraven>
you can use PROGN and friends
<no-defun-allowed>
You can't put a macro in a position where it would expand to CASE...cases as far as I know.
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<no-defun-allowed>
(defmacro augmented-case (&body cases) `(case ,@cases (your last) (two clauses))) would be how I approach that kind of thing.
<White_Flame>
well, also the case-var before the &body
<White_Flame>
(case expression I guess, not necessarily a var)
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
nikkal has quit [Ping timeout: 246 seconds]
sdumi has joined #lisp
<kinope^>
no-defun-allowed: Thanks, that's good to know, I can work with that.
<kinope^>
White_Flame: Not entirely sure what you're referring too, sorry
<White_Flame>
little fixup that would make it indent better
pve has joined #lisp
<kinope^>
Oh I see! I appreciate that thanks
sdumi has quit [Ping timeout: 264 seconds]
<kinope^>
On a completely different subject, does anyone know if common lisp provides a way to determine the LCA (lowest common ancestor) of two classes? It would save me a little bit of work if so.
shangul has quit [Ping timeout: 256 seconds]
sdumi has joined #lisp
<no-defun-allowed>
The first superclass of one class that is a superclass of the other class?
<beach>
kinope^: It probably involves some common suffix of the two precedence lists.
<kinope^>
no-defun-allowed: yes
* kinope^
goes and googles 'what is a precedence list'
<no-defun-allowed>
(let ((class1-cpl (c2mop:class-precedence-list class1)) (class2-cpl (c2mop:class-precedence-list class2))) (find-if (lambda (class) (member class class1-cpl)) class2-cpl)) ; is a fairly literal translation of that definition
scymtym has joined #lisp
zaquest has quit [Quit: Leaving]
SGASAU` has joined #lisp
SGASAU has quit [Ping timeout: 246 seconds]
zaquest has joined #lisp
megalography has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
<kinope^>
Exactly what I was looking for, thanks guys.
vaporatorius__ has quit [Read error: Connection reset by peer]
vaporatorius__ has joined #lisp
refpga has quit [Ping timeout: 260 seconds]
C-16 has joined #lisp
C-16 has quit [Client Quit]
refpga has joined #lisp
C-16 has joined #lisp
megalography has joined #lisp
shangul has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
sauvin has joined #lisp
liberliver has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
liberliver1 has joined #lisp
liberliver has quit [Ping timeout: 246 seconds]
liberliver1 is now known as liberliver
refpga has quit [Ping timeout: 264 seconds]
refpga has joined #lisp
jonatack_ has quit [Ping timeout: 240 seconds]
nikkal has joined #lisp
jonatack_ has joined #lisp
jonatack_ has quit [Client Quit]
hiroaki_ has quit [Ping timeout: 246 seconds]
hiroaki_ has joined #lisp
gaqwas has quit [Remote host closed the connection]
refpga has quit [Ping timeout: 256 seconds]
refpga has joined #lisp
nikkal has quit [Ping timeout: 246 seconds]
nikkal has joined #lisp
ralt has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
nikkal has quit [Ping timeout: 240 seconds]
kalogik has joined #lisp
scymtym has quit [Remote host closed the connection]
sauvin has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 260 seconds]
<fe[nl]ix>
luis: ping
liberliver has joined #lisp
orivej has joined #lisp
RukiSama has quit [Read error: Connection reset by peer]
bhartrihari has joined #lisp
dominic34 has joined #lisp
dominic34 has quit [Ping timeout: 246 seconds]
<sveit>
maybe this is "trivial", but what is the correct "workflow" with SLIME/SLY for longer/more complicated interactive sessions (if you are familiar, I have in mind the "Jupyter" notebooks)? For example, at present if I want to generate a plot or run a longer one-off piece of code, but want to keep the code around for my reference, i put it in a (prong ...) at toplevel, and comment it out after I run it.
<sveit>
I could probably play some eval-when tricks, but I am sure that people have already thought about this problem. I read online explicit statements that SLY/SLIME is superior to Jupyter, and that is definitely true for the "non-trivial" parts of interactive development (reloading code, classes, FFI, etc.) but I can't seem to figure out how to replicate the "trivial" part of the workflow
holycow has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
<sveit>
although maybe the answer really is a series of progn's, just want to know what's out there. thanks!
gravicappa has joined #lisp
matzy_ has quit [Remote host closed the connection]
xuxuru has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
srji has joined #lisp
emys has quit [Ping timeout: 260 seconds]
emys has joined #lisp
crazybigdan has quit [Ping timeout: 246 seconds]
akoana has left #lisp ["Leaving"]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej_ has joined #lisp
Volt_ has joined #lisp
shka_ has quit [Ping timeout: 260 seconds]
cairn has quit [Quit: authenticating]
cairn has joined #lisp
hhdave_ has joined #lisp
hhdave has quit [Ping timeout: 258 seconds]
hhdave_ is now known as hhdave
ebrasca has quit [Remote host closed the connection]
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
emys has quit [Quit: Leaving]
orivej has joined #lisp
<pve>
sveit: I put stuff like that in a separate scratch/session file that I load after slime starts up
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
<luis>
fe[nl]ix: 'sup
<sveit>
pve: thanks for the reply. one point of friction i have found with this approach is that in the repl, there are "backreferences" (*, **, ***, etc in SLIME and #vN in SLY), but AFAIK there is no substitute for this for work in scratch buffers. when I am just exploring/playing around, this is annoying. do you have a workaround?
EvW1 has quit [Ping timeout: 240 seconds]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
rumbler31 has joined #lisp
hhdave has quit [Quit: hhdave]
rumbler31 has quit [Ping timeout: 256 seconds]
shka_ has joined #lisp
jeosol has joined #lisp
deselby has quit [Quit: Idle for 30+ days]
terpri_ has joined #lisp
urek_ has joined #lisp
urek has quit [Read error: Connection reset by peer]
terpri has quit [Ping timeout: 260 seconds]
ayuce has quit [Ping timeout: 256 seconds]
johntalent has joined #lisp
<pve>
sveit: hmm I guess I just try to maximize convenience in the scratch files, e.g. by defining functions with really short names, maybe skip earmuffs etc
<pve>
since it's a scratch file I don't feel that it's necessary to stick to the standard coding style
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
<pve>
so instead of *,**,*** just do something like (setf a ... b ... c ... )
orivej has joined #lisp
nikkal has joined #lisp
mankaev has quit [Ping timeout: 272 seconds]
sdumi has joined #lisp
<sveit>
ah ok, thanks. sometimes the SBCL complaints about undefined variables can be off-putting :) when you say session file you don't mean anything special, right? just a scratch file as well?
<pve>
yeah just foo.lisp or session.lisp
<pve>
well you can get creative with macros if you skip standard coding conventions in your scratch files
<pve>
so like alias <- to defparameter or define a!, b!, c! to expand to (defparameter a ...) etc
srji has quit [Quit: leaving]
cosimone_ has quit [Quit: Quit.]
ech has quit [Ping timeout: 264 seconds]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
crazybigdan has joined #lisp
narimiran has quit [Ping timeout: 240 seconds]
ggole has quit [Quit: Leaving]
grewal has joined #lisp
refpga has quit [Remote host closed the connection]
<fe[nl]ix>
luis: what does (type-of (mp:make-gate)) return on ACL10 ?
orivej_ has quit [Quit: No Ping reply in 180 seconds.]