terpri has quit [Remote host closed the connection]
terpri has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
nicktick has quit [Ping timeout: 260 seconds]
kamid has joined #lisp
nicktick has joined #lisp
seoushi has joined #lisp
random-nick has quit [Quit: quit]
<seoushi>
is it possible to define a type of a field in a defstruct that is nil or a certain type? I got the normal type declaration working but can't find an example of an "optional" value like this
pikajew has joined #lisp
<seoushi>
this is in cl (sbcl if it matters)
Aesth has joined #lisp
<Bike>
(or null whatever)
potta_coffee has quit [Remote host closed the connection]
rumbler31 has joined #lisp
<seoushi>
Awesome. That works. Thanks
Aesth has quit [Ping timeout: 260 seconds]
rumbler31 has quit [Ping timeout: 258 seconds]
efm has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
hsaziz has joined #lisp
hsaziz has quit [Client Quit]
bitmapper has quit [Ping timeout: 256 seconds]
ebrasca has quit [Remote host closed the connection]
wxie has joined #lisp
dominic34 has joined #lisp
wxie has quit [Quit: wxie]
wxie has joined #lisp
terpri_ has joined #lisp
nicktick has quit [Ping timeout: 260 seconds]
terpri has quit [Ping timeout: 260 seconds]
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 26.3)]
<aeth>
shangul: Then you can do (maybe foo) instead of (or null foo) if that's easier for you to remember
<aeth>
I guess (optional foo) could be another name for it
<shangul>
:)
<shangul>
Thanks
jesse1010 has quit [Ping timeout: 265 seconds]
Josh_2 has quit [Ping timeout: 256 seconds]
wxie1 has joined #lisp
gaqwas has quit [Ping timeout: 246 seconds]
gekkou has joined #lisp
gaqwas has joined #lisp
wxie has quit [Ping timeout: 246 seconds]
wxie1 is now known as wxie
flazh has quit [Ping timeout: 256 seconds]
seoushi has quit [Ping timeout: 260 seconds]
flazh has joined #lisp
shangul has quit [Ping timeout: 264 seconds]
clone_of_saturn is now known as saturn2
<beach>
Good morning everyone!
<holycow>
hallo
shangul has joined #lisp
<holycow>
you get on irc really early
EvW has quit [Ping timeout: 260 seconds]
<beach>
I wake up early. It's a genetic defect in my family.
Jeanne-Kamikaze has joined #lisp
kinope^ has joined #lisp
wxie has quit [Ping timeout: 246 seconds]
wxie1 has joined #lisp
wxie1 is now known as wxie
Misha_B has joined #lisp
<kinope^>
Hello
<no-defun-allowed>
Hello kinope^
Bike has quit [Quit: leaving]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 246 seconds]
renzhi has quit [Ping timeout: 256 seconds]
<kinope^>
I can define message handlers for each state of a state machine class, and state machines can inherit behavior from another class. but I am drawing blanks when trying to figure out how I could specifically redefine a single 'message->action' 'case' inside a method of a class, so that I don't have to rewrite the entire message handler to just to
<kinope^>
change the behavior of, for instance, an on-entry event/message action. I realise I may be staring down a deep rabbit hole here, but can anyone please point me in the right direction?
wxie has quit [Ping timeout: 265 seconds]
fouric has quit [Ping timeout: 260 seconds]
fouric has joined #lisp
dominic34 has quit [Ping timeout: 260 seconds]
<beach>
kinope^: I guess I must have missed some previous messages, because I don't understand what you are referring to. Classes in Common Lisp don't have methods, for instance. And I think of a state machine not as a class but usually as a big TAGBODY with the tags being states.
<beach>
You must have a particular architecture for your state machine in mind.
<beach>
But perhaps you have already told us about that particular architecture?
ArthurStrong has quit [Ping timeout: 246 seconds]
<kinope^>
No, no messages were missed, I just started writing in the middle of my thoughts haha. I still get confused between generic functions an class methods of other object systems of other languages. I am putting together a hierarchical state machine event processor, so I was hoping to piggy-back on lisp's class system to save needing to figure out how
<kinope^>
states or submachines can inherit behavior from superstates.
<beach>
How is a state represented in your state machine?
<kinope^>
as a generic function
<beach>
?
<kinope^>
it contains an event handler
<kinope^>
so events can be dispatched to the state
<beach>
A state machine is like a graph of states, with transitions between states.
<beach>
So a state is a generic function. I guess the state is kept in a variable somewhere, or perhaps in a slot of a class instance?
<beach>
So you must be doing (setf (state machine) #'<some-generic-function>)?
<beach>
So the messages you are talking about, are they what determine the transitions?
<kinope^>
the current state is stored in a class member of the state machine class. transitions are handled by a generic function transition that handles transitions between nested states according to statechart semantics
Aurora_v_kosmose has quit [Remote host closed the connection]
<kinope^>
yes, messages are a combination of a symbol and optionally some extra data related to the message/event
<beach>
Nested states? What does it mean for generic functions to be nested?
Aurora_v_kosmose has joined #lisp
<kinope^>
a state is nested so that common behavior can be handled by a state lower in the hierarchy, if a state doesn't handle a message then the message is delivered to the state down one level and so on until the message is handled or is discarded.
<beach>
kinope^: I am afraid I must give up on trying to understand what you mean. The terminology you use does not look like anything I know about state machines. But then, I am notorious for being unable to understand what people mean.
<kinope^>
When the message is dispatched it will be handled by the state/generic function, if not then the function returns a value that indicates that it wasn't handled and the dispatcher can try with a state higher up in the heirarchy
<beach>
Perhaps you have better luck with some other #lisp participants.
<kinope^>
okay thanks beach
sdumi has quit [Ping timeout: 265 seconds]
sdumi has joined #lisp
<kinope^>
I should have mentioned that I am looking at the semantics of Statecharts more specifically the semantics defined in the UML standard. Not finite state machines, but hierarcical state machines
nicktick has quit [Ping timeout: 240 seconds]
dddddd has quit [Ping timeout: 260 seconds]
<White_Flame>
depending on how featureful you want your state machine to be, each state can simply be a lambda that takes an event parameter
<White_Flame>
and returns a lambda to use next (which could even be itself)
<White_Flame>
wrap the whole set in a LABELS so each function object is visible by name
<kinope^>
Thanks White_flame, yes that was along the lines of my original implementation. As state transitions can be pretty complex in a HSM they have to be handled by a dedicated function. That doesn't rule out using lambda or closures, but I would have to implement my own methods for behavioral inheritance which the object system already supplies.
sdumi has quit [Ping timeout: 265 seconds]
Jeanne-Kamikaze has quit [Quit: Leaving]
kamid has quit [Ping timeout: 260 seconds]
<White_Flame>
kinope^: that can still be encapsulated in single function objects
paule32 has joined #lisp
<paule32>
hello
<White_Flame>
the state machine basically becomes an list of function objects
<White_Flame>
with one passing its event to the next if not handled
<White_Flame>
and if you have peers at a level, it fans out
kamid has joined #lisp
<White_Flame>
but yeah, this would be more a generated implementation, not really what you'd write by hand
nikkal has joined #lisp
wxie has joined #lisp
<White_Flame>
with stuff like this, I start by writing how I'd like to specify the state machine, and then get that running
<no-defun-allowed>
I don't know what BAUTYPE means, or does, because ^LED means nothing (it would return led in Smalltalk, which is notable for not being Common Lisp), and because structure classes aren't bound in the variable namespace.
<paule32>
no-defun-allowed: like a brick, not colored red, but colored black, as example
<kinope^>
White-Flame: Cheers, I need to take a walk and consider my options more fully.
<no-defun-allowed>
How do bricks relate...to what I think is an electrical model of some kind?
<paule32>
hehe, yes, right, stupid example
<paule32>
i am in germany, and have to translate some parts ...
orivej has joined #lisp
<no-defun-allowed>
Furthermore, if you haven't got it working at all, I wouldn't add type declarations. Right now, they just make the code longer and less amenable to to changing representations of things.
<White_Flame>
also, write a single defstruct and getting it working first, playign with it at the repl, as opposed to writing a full file of things that aren't even syntactically correct yet
matzy_ has joined #lisp
<matzy_>
anyone have experience with cl and docker?
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
<beach>
matzy_: I believe the Clasp people use docker.
sauvin has joined #lisp
<matzy_>
doesn't seem like clasp has much to do with lisp
<beach>
Go to #clasp. It is a Common Lisp implantation that interoperates with C++.
<beach>
implementation.
<beach>
*sigh*
<matzy_>
really? interesting that they dont even mention that in the repo. awesome
<matzy_>
thanks!
<beach>
Sure.
gravicappa has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
wxie1 has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
wxie1 is now known as wxie
<paule32>
what is asp = action script programming = aka windows ?
heisig has joined #lisp
wxie1 has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
wxie1 is now known as wxie
<easye>
paule32: "ASP" was Active Server Pages, a MSFT Windows technology for HTTP server pages
<paule32>
oh
<paule32>
lisp for web?
<easye>
No, I don't know of any connection between Lisp and ASP
<paule32>
scroll up ... clasp
<paule32>
maybe i misunderstood the other's
<easye>
I belive ya id.
<no-defun-allowed>
Clasp doesn't stand for anything to my knowledge.
<paule32>
ok, i will not stress you, please forget my question in this pov
<paule32>
pov = point of view :)
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
JohnMS_WORK has joined #lisp
Bourne has joined #lisp
<paule32>
how can i create a "dummy" defstruct, for a ^make-unknow part ?
<paule32>
hello Bourne, you are the inventor of bash?
<beach>
paule32: Off topic. And you need to read up on your computing history.
nikkal has quit [Ping timeout: 246 seconds]
nicktick has joined #lisp
sdumi has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
sdumi has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
Misha_B has quit [Ping timeout: 256 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
mathrick has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
dkovalev__ has quit [Remote host closed the connection]
dkovalev__ has joined #lisp
rixard_ has joined #lisp
rixard has quit [Read error: Connection reset by peer]
zooey has quit [Quit: quit]
orivej has quit [Quit: No Ping reply in 180 seconds.]
zooey has joined #lisp
mingus has joined #lisp
orivej has joined #lisp
mathrick has joined #lisp
galiley has joined #lisp
wxie has joined #lisp
scymtym_ has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
akoana has left #lisp ["Leaving"]
<flip214>
paule32: a structure cannot be redefined later. If you want to change it's contents (slots) later on, use an (initially empty) class.
Bourne has quit [Ping timeout: 264 seconds]
nicktick has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 264 seconds]
contrapunctus has left #lisp [#lisp]
shifty has joined #lisp
orivej has joined #lisp
matzy_ has quit [Remote host closed the connection]
heisig has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
<paule32>
not logic included, only test structures and c++ inheritance
wxie has joined #lisp
<shka_>
paule32: care about style criticism?
<beach>
How come you don't act upon advice given to you. You still have parentheses by themselves on a line.
<beach>
paule32: Your indentation is wrong.
<beach>
Still.
<shka_>
also
<beach>
You don't use earmuffs on special variables.
<shka_>
NO * * AROUND SPECIAL VARIABLE NAMES!!!
<paule32>
yeah guy's
<beach>
Your number of semicolons is wrong.
<paule32>
i funny, that the code works
<paule32>
ok, now, i should ident the code
<shka_>
i can't stress how important the * * is
<shka_>
*stress enough
froggey has quit [Quit: Reconnecting]
<no-defun-allowed>
That's why it's "style". The compiler can read it, but it's not nice for humans to read code with bad formatting.
<paule32>
*stdio* ?
<shka_>
yes
froggey has joined #lisp
<shka_>
because of how dynamic scope works, not using ** is asking for trouble
<no-defun-allowed>
"Programs must be written for people to read, and only incidentally for machines to execute."
<paule32>
no-defun-allowed: i came from the pascal/c way, but now, i am subway lisp
<paule32>
there are completly other style guide
<shka_>
paule32: that's fine, i mean there are even cases where closing parenthesis on the new line makes some sense, but try to follow lisp style guide
<shka_>
especially since EVERYBODY do
<shka_>
like, nobody names lisp variables foo_bar
<shka_>
only foo-bar
<beach>
paule32: But you have been told, repeatedly, what some of the rules are for Common Lisp. Still you expose code for others to read that doesn't follow the advice you were given.
<paule32>
you, as guru, can read lisp fine, but some is completrly new - because i don't code in lisp everyday, so i have a afine to mix up the code
<paule32>
that the problem
<paule32>
i try to respect you all
<shka_>
paule32: well, sorry for beating you with a stick, but that's the only way to enforce standards :P
rumbler31 has joined #lisp
<easye>
"beatings will continue until morale improves", eh?
<shka_>
we may also put some nails into the stick
<shka_>
if morale does not improve
<shka_>
seriously, though
<paule32>
in my eyes, i respect you very big, and i will hold on lisp, when the old skool guy's not arrriveable anymore ...
<shka_>
it is not all that difficult to follow
<shka_>
paule32: point beach made are very easy to fix
<shka_>
step by step guide would be
<shka_>
parentheses: just don't (i sometimes do, but this way you won't annoy people)
<shka_>
indentation: just stick with emacs/slime default
<paule32>
if you need help, i could try to translate it to german, because the most text is in english, what i found
<shka_>
literally everyone uses the same setting
<shka_>
and put the earmuffs around special variables
<shka_>
done, you have quenched the righteous wrath of beach
rumbler31 has quit [Ping timeout: 246 seconds]
terpri__ has joined #lisp
<paule32>
so, in a half our, it is dinner time
<shka_>
which not only means you stopped annoying people, but also you may get some tips from beach
<no-defun-allowed>
I thought my mum was weird for making dinner at 4:30pm, but dinner at 11am is certainly something.
<shka_>
which is very useful on it's own right
gravicappa has quit [Ping timeout: 246 seconds]
<shka_>
no-defun-allowed: i used to eat dinner around 5pm so it is not that weird
<paule32>
hehe
<paule32>
11:00 am here
terpri_ has quit [Ping timeout: 260 seconds]
<beach>
no-defun-allowed: Check the Wikipedia page on "Dinner".
rogersm has joined #lisp
<no-defun-allowed>
Ah, alright.
wxie has quit [Ping timeout: 260 seconds]
gaqwas has quit [Changing host]
gaqwas has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
gioyik has quit [Quit: WeeChat 2.8]
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
orivej_ has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
seok has joined #lisp
vaporatorius__ has joined #lisp
efm_ has joined #lisp
efm has quit [Read error: Connection reset by peer]
bhartrihari has left #lisp ["Disconnected: closed"]
shifty has quit [Ping timeout: 265 seconds]
jesse1010 has joined #lisp
bhartrihari has joined #lisp
shifty has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
varjag has joined #lisp
hvxgr_ has quit [Ping timeout: 256 seconds]
<ralt>
shka_: emacs/slime default mix tabs and spaces :|
hvxgr has joined #lisp
<shka_>
really?
<shka_>
i would never know
<varjag>
say i run slime session on a remote host… is there a hack to make it open source code references from a local filesystem?
<ralt>
I know whenever I copy paste my code out of emacs and it's full of inconsistencies
<shka_>
varjag: there is one, let me google it out
<shka_>
varjag: i mean, sorry, i though you meant the remote filesystem
<shka_>
which makes sense for debugging
<varjag>
right, the opposite
<ffwacom>
ralt: that explains the jank I’m seeing in fork diffs (git)
<no-defun-allowed>
It says "don't look", so you go and look.
<seok>
Yes
<seok>
I even post the link here so everyone can go and take a look
<shka_>
i should remove some of the repos from github
<shka_>
just in case
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
cosimone has joined #lisp
<phoe>
seok: let me try to translate
manu1511 has quit [Quit: WeeChat 2.8]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
<phoe>
"DON'T LOOK, AAAAAAAAAAAAAAAAAAAAAAAAAAAA" == "if you dare look at this code and/or use it for anything, you acknowledge that you are fully and utterly on your own for all practical and theoretical purposes; good luck and God sped you"
jello_pudding has quit [Ping timeout: 260 seconds]
<seok>
What does "I'm going crazy" mean?
<no-defun-allowed>
Exactly that.
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 258 seconds]
X-Scale` is now known as X-Scale
shangul has quit [Ping timeout: 264 seconds]
dddddd has joined #lisp
cosimone has quit [Quit: Quit.]
<phoe>
translating "I'm going crazy": "this last commit has made me see the very bottom of my tin jar of mental powers, my heart is barren and dry; oh, madness, sweet madness, I can feel thee creeping unto me, whispering your sweet nothings into my ears even as they are covered with headphones, mashed with heavy music! Oh, thy promises are red and moist with honey, thy seduction unbearable; please, spare me this
<phoe>
one-sided journey of yours, begone for a day or an hour more, for I have a task to finish, a task that is mortal and mundane and so very much unlike the tasks that you set before me, to cast away my old self, to remove all meaning from my life and replace it with thee, with thy words, with thy passion and chaotic fury"
<phoe>
seok: does this solve your problem?
<easye>
Some fierce words!
<phoe>
easye: nah, I feel that way every time I fix bugs
* easye
laughs
<seok>
beautiful. Japanese people have an interesting way of reciting poetry
<phoe>
that's not Japanese
orivej has quit [Ping timeout: 246 seconds]
<seok>
but Shinmera is
<phoe>
wtf
<phoe>
no he isn't
<seok>
he is not?
<phoe>
he is very much not
bhartrihari has joined #lisp
<seok>
Why is his blog in Japanese tho
<easye>
He just wishes he wuz....
<seok>
o
orivej has joined #lisp
<heisig>
Hint: Shinmera was supposed to be the local chair at ELS in Zürich.
<seok>
he is a Japanese living in Zurich?
<easye>
That doesn't logically rule out the possible world in which "Shinmera is Japanese" is true.
<shka_>
heh
jello_pudding has joined #lisp
<shka_>
not only shinmera wishes to be japanese, other people also want him to be japanese
<easye>
Well, if Shinmera were here right now, he would gently nudge such speculations to #lispcafe.
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
gaqwas has quit [Remote host closed the connection]
madand has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
rumbler31 has joined #lisp
manu1511 has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
sunset_NOVA has joined #lisp
kpoeck has quit [Remote host closed the connection]
madand has quit [Client Quit]
rumbler31 has quit [Ping timeout: 258 seconds]
madand has joined #lisp
EvW1 has joined #lisp
cosimone has joined #lisp
rogersm has quit [Ping timeout: 244 seconds]
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
jeosol has quit [Remote host closed the connection]
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
mingus has quit [Ping timeout: 256 seconds]
shangul has joined #lisp
Bike has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life_ has joined #lisp
cosimone has quit [Quit: Quit.]
Lord_of_Life_ is now known as Lord_of_Life
kinope^ has quit [Remote host closed the connection]
jonatack has quit [Read error: Connection reset by peer]
kinope^ has joined #lisp
<kinope^>
Hey beach in case you or anyone else is interested this is what I was babbling on about earlier.I wasn't able to get across what it was that I was asking, but perhaps this makes it a little clearer.https://pastebin.com/raw/Ur6KMMvAI was wondering if it is at all possible to change just one specific 'case form'(?) that resides inside a state.For
<kinope^>
example if I wanted to create a new class of 'machine' called 'green-machine', have it inherit 'test-machine's behavior(states), BUT, say I wanted to change some of the behavior in 'state1' so that on recieving the 'print' event it prints "green machine", is it possible to do that without rewriting the entire method somehow? or this just
<Bike>
then you can do normal inheritance stuff to get your different behavior.
orivej has quit [Ping timeout: 264 seconds]
orivej_ has joined #lisp
terpri__ is now known as terpri
<kinope^>
Wow! So simple, but It works!
rogersm has joined #lisp
<kinope^>
Thanks Bike
jonatack has joined #lisp
madage has quit [Ping timeout: 240 seconds]
<kinope^>
I thought it would be complicated to do something like this, but it turns out it's just there in the language!
* kinope^
is very chuffed
ebrasca has joined #lisp
nabataeus has joined #lisp
madage has joined #lisp
nabataeus has left #lisp [#lisp]
bhartrihari has joined #lisp
seok has quit [Remote host closed the connection]
penguwin has quit [Quit: Ping timeout (120 seconds)]
EvW1 has quit [Ping timeout: 244 seconds]
shinohai has quit [Quit: If you are reading this then I have left the channel.]
penguwin has joined #lisp
shinohai has joined #lisp
gxt has joined #lisp
<flip214>
Yeah, filtered functions should be in CLOS
<shka_>
not sure about it
<shka_>
CL is already a large standard
<flip214>
shka_: do you prefer something lean (like Scheme) where so many useful things are missing?
andrei-n has joined #lisp
<adlai>
kinope^: state machines are not encodable with full generality as common lisp generic functions, since tail recursion is not required by the implemntations.
EvW has joined #lisp
<adlai>
you can express what you'd like the state machine to execute, although it might end up as obscure and convoluted as the standards document itself.
terpri_ has joined #lisp
<shka_>
flip214: i just think that there are other ares of CL that could benefit from extension a lot more
terpri has quit [Ping timeout: 260 seconds]
<shka_>
like standardized local-nicknames
<adlai>
if only, whatintarnationwasitnamedagain, generiflect, had genuflected the committee members into agreement before the budget constraints loomed.
<shka_>
well, at some point you need to stop adding features
<beach>
I think most other languages could benefit more from being more like Common Lisp than for Common Lisp to have more features.
<shka_>
true
<shka_>
but i still think that packages got shortchanged :P
<shka_>
luckily this became irrelevant now
<beach>
Seriously, I don't get this kind of discussion. Lots of people use languages every day that don't even HAVE a standard. But for some reason, when it comes to Common Lisp, it is not enough that the feature exists in every major implementation. IT HAS TO BE IN THE STANDARD or else we complain.
<kinope^>
adlai: If it's not too much to ask, can you please expand on the first point you made. I know little in this area so it's not immediately obvious to me how tail-recursion factors into being fully general-isable or what that means actually.
<shka_>
beach: well, that's why it is irrelevant nowdays
<Bike>
if you have a state transition function, and it doesn't use tail calls, then every state transition will need a new stack frame.
<Bike>
so, if the machine passes through too many states, you'll blow the stack.
<beach>
shka_: So why does not a single week go by without a long discussion about what is lacking in the standard?
<adlai>
kinope^: thank you, it ain't. I'll be here all week and you'll hear back from me once I've compiled unwritten ideas into English, probably before the next moon.
<shka_>
beach: i assure you that this is common to standardized languages
<shka_>
we are not unique :(
<beach>
shka_: But then, these new features are often proposed by people who have no knowledge about language design or compiler design, so they have no idea how the proposed feature might ruin some main feature of the language, such as the ability for the compiler to generate fast code, for instance.
<beach>
I am not talking about this particular instance of the discussion of course.
<shka_>
i am afraid that at this point you are just expressing your personal frustration
<jackdaniel>
it is hard to express external frustration, you need years of training as an actor
<jackdaniel>
,)
<jackdaniel>
s/external/someone else's/
<kinope^>
Bike: I see. does this issue have a work around? Should I look into other avenues of state machine representation instead?
EvW has quit [Ping timeout: 260 seconds]
<shka_>
kinope^: yes
<shka_>
what i would do in your case is to return closure instead of calling new state function directly
<shka_>
since it is easier to rewrite it this way
<shka_>
and then call returned closures in a loop
EvW has joined #lisp
<kinope^>
shka_: alright I'll look into that thanks
wsinatra has joined #lisp
seok has joined #lisp
<seok>
is there a library to sign api request signatures?
<seok>
seems like a common task
EvW has quit [Ping timeout: 246 seconds]
<p_l>
with no real standard, iirc
<seok>
Oh, do each provider sign differently?
<p_l>
let me check, but just Amazon is on 4th version of their signature scheme
<p_l>
seok: there's a not-even-RFC-yet from Oracle: draft-cavage-http-signatures-07
<jmercouris>
hm... this will still involve quite some work
<shka_>
anyway, now this object can be funcalled like an ordinary function
<jmercouris>
yes, that is very very cool
<jmercouris>
i wish I had known about the existence of this
<shka_>
now, since you have your commands to be functions at the moment
<jmercouris>
we cannot store extra data as a result
<jmercouris>
and that is why we have a separate class
<jmercouris>
but it would make a lot of sense to just be in one class
<jmercouris>
one object
<shka_>
yeah, one unit
contrapunctus has left #lisp ["Disconnected: closed"]
random-nick has quit [Quit: quit]
rpg has joined #lisp
vaporatorius_ has joined #lisp
<shka_>
phoe: hopefully you see my point as well
vaporatorius__ has quit [Ping timeout: 264 seconds]
<jmercouris>
i will still do this later, i’ll iterate over it
marcoxa has joined #lisp
<marcoxa>
Hello!
<shka_>
hi
<phoe>
shka_: yes, I understand that
<phoe>
hey marcoxa
<shka_>
ok, cool
nikkal has joined #lisp
edgar-rft has joined #lisp
efm_ has quit [Quit: Konversation terminated!]
gravicappa has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
rippa has joined #lisp
ArthurStrong has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
bitmapper has joined #lisp
rumbler31 has joined #lisp
<kinope^>
shka_: Hmm, I've been puzzling over the call stack issue. You mention to return a closure instead of calling the new state function directly. As far as I can see though this is currently what the state transition function does, or rather the transition function takes as an argument a function object and stores it in the 'state' slot of the machine
<kinope^>
object so that events may be dispatched to the state machine further down the line. The transition function does currently dispatch 'exit' and 'entry' events to the source and target state as part of transitioning between states but the machine 'must' settle into a stable state. After the stable state is reached there is nothing else to do but to
<kinope^>
return to the place where the initial event(that caused the state transition) was dispatched from, thus, I cant forsee an issue with potentially blowing out the stack. Of course, I may be wrong though.
jonatack has joined #lisp
rumbler31 has quit [Ping timeout: 258 seconds]
<Bike>
if the transition function just returns the new state that's fine
<Bike>
but in your pastebin there's no loop, it just keeps doing calls
<kinope^>
I'll be integrating it with an actor run-time I've been working on, currently the state-machine doesn't operate on its own. the only calls that are made are to perform exit and entry actions to and from certain states, but otherwise it sits unanimated
JohnMS_WORK has quit [Read error: Connection reset by peer]
contrapunctus has joined #lisp
<Bike>
but i mean, you have state1 calling transition, which calls dispatch, which calls a state function again.
<kinope^>
state1 only transfers state on receiving an event of the symbol 'transition'. There is only the possibility of infinite recursion if one were to design a machine with state transitions inside every 'entry' to each state up to infinity.
<Bike>
i mean state machines often go indefinitely or for very long, yeah?
mingus has joined #lisp
<kinope^>
well, yes. but they don't need to recurse. once the state is updated the dispatch can return in anticipation of further event dispatch. the state machine sits idle between receiving events.
<Bike>
oh, i see what you mean now.
Lycurgus has joined #lisp
<Bike>
i assumed this was like a mealy machine and the event was an input
<adlai>
kinope^: if you explicitly include a stack counter that acts to the halt state upon overflow, then the worst thing a correctly compiled implementation could do is halt incorrectly instead of keeping your perpetuum mobile dancing.
<adlai>
you could also exhale smoke after snorting sparks, although that requires hardware errors.
<kinope^>
Cool, the flow goes like this: Run-time dequeues message of central message queue -> inside the message is an address of a state machine and an event which is dispatched to the machine -> machine sends event to currently active state -> which runs to completion, this may involve a state transfer or not -> procedure returns to the run-time system so
<kinope^>
that it may again dispatch any available messages.
<adlai>
kinope^: do you still require further expounding of the aforementioned initial point? it is covered by my previous two messages, although they are much less verbose than yours.
random-nick has joined #lisp
<kinope^>
that was in reply to Bike, adlai. I'm just a slow typist :P
<kinope^>
If you don't mind though I would like to hear it.
<adlai>
there are significantly more practical existing compiler errors in published CLOS implementations, and these have precedence over writing a state machine method combination. have fun with that one, kinope^ !
<adlai>
I hope that by the time I fix compliance errors in method combinations, there'll be any reason for such mature generality.
* adlai
might even fix sheeple before going back to reading CLOS internals, although there are compliance errors in the one that actually has a good, done, standard.
adlai has left #lisp ["halt stat"]
rumbler31_ has joined #lisp
<kinope^>
I am unsure if you are ticked off with me, but you have left so I guess it doesn't matter anymore.
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
sdumi has quit [Ping timeout: 264 seconds]
dyelar has joined #lisp
scymtym has joined #lisp
nikkal has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
marcoxa has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
nikkal has joined #lisp
sjl_ has joined #lisp
dominic34 has joined #lisp
SGASAU` has joined #lisp
SGASAU has quit [Ping timeout: 265 seconds]
ljavorsk has joined #lisp
dyelar has quit [Quit: Leaving.]
kinope^ has quit [Remote host closed the connection]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
ljavorsk has quit [Ping timeout: 265 seconds]
kinope^ has joined #lisp
kinope^ has quit [Remote host closed the connection]
random-nick has quit [Read error: Connection timed out]
nikkal has quit [Read error: Connection reset by peer]
nikkal has joined #lisp
random-nick has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
narimiran has quit [Ping timeout: 264 seconds]
orivej_ has joined #lisp
narimiran has joined #lisp
sdumi has joined #lisp
bitmapper has quit [Remote host closed the connection]
orivej_ has quit [Ping timeout: 260 seconds]
gaqwas has quit [Remote host closed the connection]
bitmapper has joined #lisp
orivej has joined #lisp
terpri__ has joined #lisp
SGASAU` has quit [Remote host closed the connection]
SGASAU` has joined #lisp
terpri_ has quit [Ping timeout: 244 seconds]
hiroaki_ has quit [Ping timeout: 256 seconds]
drdee has joined #lisp
refpga has joined #lisp
rogersm has quit [Quit: Leaving...]
Josh_2 has joined #lisp
EvW1 has joined #lisp
refpga has quit [Remote host closed the connection]
nicktick has joined #lisp
mingus has quit [Ping timeout: 264 seconds]
Lycurgus has quit [Remote host closed the connection]
sdumi has quit [Ping timeout: 260 seconds]
sdumi has joined #lisp
matzy_ has joined #lisp
refpga has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
seok has quit [Remote host closed the connection]
nicktick has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
shangul has quit [Ping timeout: 256 seconds]
matzy_ has quit [Remote host closed the connection]
nicktick has joined #lisp
manu1511 has quit [Quit: WeeChat 2.8]
EvW1 has quit [Ping timeout: 260 seconds]
Josh_2 has quit [Ping timeout: 256 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
matzy_ has joined #lisp
refpga has quit [Remote host closed the connection]
knuckles has joined #lisp
andrei-n has quit [Quit: Leaving]
nicktick has quit [Ping timeout: 265 seconds]
nicktick has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
EvW has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
shifty has quit [Ping timeout: 264 seconds]
shifty has joined #lisp
efm has joined #lisp
bitmapper has quit [Remote host closed the connection]
mathrick has joined #lisp
gekkou has quit [Quit: WeeChat 2.9-dev]
bitmapper has joined #lisp
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
vaporatorius_ has quit [Read error: Connection reset by peer]
Misha_B has joined #lisp
vaporatorius_ has joined #lisp
gaqwas has quit [Remote host closed the connection]
orivej has quit [Quit: No Ping reply in 180 seconds.]
Harag has joined #lisp
manu1511 has joined #lisp
aeth has quit [Read error: Connection reset by peer]
orivej has joined #lisp
aeth has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
vaporatorius_ has quit [Read error: Connection reset by peer]
vaporatorius__ has joined #lisp
heisig has quit [Quit: Leaving]
rumbler31_ has quit [Ping timeout: 265 seconds]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
dkovalev__ has quit [Remote host closed the connection]
dkovalev__ has joined #lisp
jw4 has quit [Quit: tot siens]
drdee has quit [Remote host closed the connection]
fiveop has joined #lisp
drdee has joined #lisp
jw4 has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
ebrasca has quit [Ping timeout: 264 seconds]
dkovalev__ has quit [Remote host closed the connection]
nalik891 has joined #lisp
orivej has joined #lisp
fiveop has quit []
orivej_ has quit [Ping timeout: 264 seconds]
gaqwas has joined #lisp
gaqwas has joined #lisp
dominic34 has quit [Ping timeout: 258 seconds]
CrazyEddy has quit [Ping timeout: 258 seconds]
dddddd has quit [Ping timeout: 260 seconds]
nikkal has quit [Ping timeout: 258 seconds]
CrazyEddy has joined #lisp
bhartrihari has joined #lisp
sauvin has quit [Ping timeout: 246 seconds]
ebrasca has joined #lisp
cosimone has quit [Quit: Quit.]
dlowe has quit [Ping timeout: 256 seconds]
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
JetJej has joined #lisp
contrapunctus has left #lisp [#lisp]
dlowe has joined #lisp
hiroaki_ has joined #lisp
sjl has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 264 seconds]
JetJej has quit [Quit: [Quit]]
shifty has joined #lisp
shka_ has joined #lisp
cosimone has joined #lisp
TwoNotes has joined #lisp
<TwoNotes>
Are options to (log4cl:config) order sensitive? I can not get it to STOP putting package and file names in the log.
madage has quit [Ping timeout: 240 seconds]
galiley has left #lisp ["ERC (IRC client for Emacs 26.1)"]
hdasch has quit [Read error: Connection reset by peer]
hdasch has joined #lisp
quazimodo has quit [Ping timeout: 264 seconds]
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
akoana has joined #lisp
notzmv has joined #lisp
Lord_of_Life_ has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
quazimodo has joined #lisp
madage has quit [Ping timeout: 240 seconds]
dominic34 has quit [Ping timeout: 246 seconds]
madage has joined #lisp
random-nick has quit [Ping timeout: 264 seconds]
gravicappa has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
dominic34 has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
<thmprover>
How can I make a class "extend" the number type? (I'm trying to do this with a generalization of the quaternions, itself a generalization of the Complex numbers)
choegusung has joined #lisp
<no-defun-allowed>
You cannot in Common Lisp.
choegusung has left #lisp [#lisp]
<thmprover>
Boo :(
edgar-rft has quit [Ping timeout: 246 seconds]
<thmprover>
Well, that's still good to know, I can work around it.
efm_ has joined #lisp
dominic34 has quit [Ping timeout: 265 seconds]
efm has quit [Ping timeout: 260 seconds]
<no-defun-allowed>
There is a system that provides a "generic" lookalike which lets you write methods for arithmetic functions, but programs have to use that in order to utilise your quaternions.