Ok, well 'flush stdout' should have that effect, as it stands right
now.
Yeah, that works. I tried a page with calling flush stdout at the
end before calling 'headers,' and it worked beautifully (failed that is).
I then tried the same page without the flush, and the headers command worked.
I'm thinking about redoing the parser to take into account situations
like this:
some html
?
puts {? blah blah blah?}
?
Which currently cause problems with the parser. Thoughts? Maybe at
the same time, I can make it accept ?dtcl as well as ?, also...
Hrmmm...
.ttml is probably a good thing to move away from, just so we stake out
our own namespace.
How about .rsp?
Borrows on a common theme, and isn't too hard to find with google (I
like looking up pages to see who is using my stuff:-).
I guess .rsp is ok. I was thinking more like .rvt.
Ok,
Now that I have some organization to the Tcl code, I'm about to
embark on organizing the C code a little. I want to add some more
commands at the C level, and I need to decide the best way to do it.
Should we:
A) Compile C commands into mod_rivet.so itself.
B) Compile C
Escape/unescape sound like handy things to have that could reasonably
be considered part of the core. Something like lremove couldn't be
written in Tcl? Let's have a look at the list and see if we are in
agreement with everything.
Well, I think any command we add in C should just be
I've mentioned it about mod_dtcl and I'll mention it here.
Change the config to directories (probably the path would be relative to
/usr/local/apache/rivet).
That's the part I like about AOLserver - when I want to move some
module I just copy modules/tcl/dirname between machines and
I noticed something that's kind of a pain in the neck in rivetCore:
if (authorization
!strcasecmp(ap_getword_nc(POOL, authorization, ' '), Basic))
{
char *tmp;
char *user;
char *pass;
tmp = ap_pbase64decode(POOL, authorization);
user =
You know. I'm inclined to agree. 2.0 really does say something to
some people about stability, and I DEFINITELY think that Rivet has
that stability. I don't really care about version numbers. I've used
tons of 0.X releases in production code knowing the authors and
knowing that it's
Robert beat me to it. 0-] Yes, the new ActiveTcl is compiled with
threads enabled by default on Windows. If you download the latest
version you may find that everything just works for you. Please let us
know your results. We're always very curious to know how it all goes. 0-]
Damon
Hey,
How would everyone feel about packaging up a full install of Rivet
for Windows? Apache, Tcl, Rivet, the works, all included in an
installer. I really wouldn't want this for any other platform, but it
just makes sense for Windows. We'd probably get some good feedback from
people
You're right. There's thing thing about DIO where it does an
upvar $arrayName $arrayName $arrayName array
...and I'm not totally sure why... it's some sort of Damon magic.
Uh... probably something really stupid on my part. 0-] Not sure why
the double $arrayName would be there when
Is this happening when you start the server up, or when you serve up a
webpage? If it happens on a page, can you get some pages to work, or
do they all fail?
Thanks,
Damon
Thanks you. Any suggestion about what it might be, or what software to
swap in order to fix it?
Hicks, Robert
Do you mean the 'list' and 'array' methods? They were named that
way for two reasons. One, to jive with what ns_tcl was already doing,
and two to jive with what they do and what Tcl'er would expect them to
do based on name.
There was no scientific (or even good) reason other than
And, by the way, in defense of Tcl, the new Rails release JUST got
Unicode support! Wahoo! Those guys are smokin'.
D
David Welton wrote:
Having looked at Ruby on Rails, I don't see anything so spectacular
that it couldn't be done in Tcl. Tcl was made for this kind of stuff.
It just
Believe me when I say that there is nothing I would love more than
something to get excited about in the Tcl community. I continue to use
Tcl for most all of my projects because I love it so much. I've gotten
so used to the things that Tcl does so well that it's hard for me to use
another
The elephant in that room is garbage collection, as I mentioned on
tcl-core. I want my objects deleted automatically.
I would like that too, but unfortunately this is far from trivial in
Tcl. It may not even be possible in a reasonable sense. Laddered
string would help a lot to do
I'd go 50 if I had to throw out a number. 50 isn't going to hurt
anything, and it might help someone who just leaves the defaults in
place.
D
On Jul 10, 2008, at 9:37 AM, David Welton wrote:
Do you think a value of 50 would be enough?
For my needs 20/25 slots in the cache would
I like the new 'upload tempname' as well. That's better in a lot
of ways than 'upload save' which is just going to copy (rename?) the
temp file into another location when all you really want is to open up
the file wherever it is.
Damon
On Nov 14, 2008, at 11:19 AM, Massimo Manghi
On Sep 3, 2009, at 8:54 AM, Karl Lehenbauer wrote:
Since the table command is apache_table, how about if the proposed
error logging command is apache_log_error?
I don't have any problem with adding more of the Apache API to Rivet,
and I like keeping the function names the same if we can.
On Apr 15, 2010, at 3:19 PM, Jeff Lawson wrote:
On Thu, Apr 15, 2010 at 3:15 PM, David Welton dav...@dedasys.com wrote:
It's been so long that I've forgotten how to go about things
officially. I know we have to vote on it...
I'd still be a little bit concerned about the 2.X support. Are
Excellent! Thanks for taking on the official release bits and getting things
cleaned up, Massimo. I think I'll grab the new release once it's posted and do
some work on my server. See what shakes loose. I'm not even sure what I have
installed on my server these days. 0-]
Damon
On Apr 29,
So, I installed Rivet on my Apache 2 box today because I wanted to dink around
with some pages. I am happy to report that after only a minor hiccup, I got
everything up and running with no problems. Kudos to Massimo and everyone for
getting the 2.0 release out and solid enough to build with
So, way back when we first wrote Rivet, we had this bright idea to make a
::request::global command that automatically forced global variables into the
::request namespace so that users could say
global foo
And get what was EFFECTIVELY a global variable for their request but without
actually
compiled pages, so you might look at that too. Also I bet you can define
your procs globally with something like proc ::foo if you want to just
shotgun it.
On Sep 9, 2010, at 7:06 PM, Damon Courtney wrote:
So, way back when we first wrote Rivet, we had this bright idea to make
I think it's time to drop support for Tcl 8.4 in the next release. We've got
2.0.1 out there that works with 8.4, but 8.4 is getting long in the tooth and
will soon be EOL'd. I'm already running everything on 8.6, and Karl has been
on 8.5 for a while now. As I make changes to the core, I'd
and forth?
-- Massimo
On Thu, 9 Sep 2010 21:22:13 -0500, Damon Courtney wrote
After chatting with Karl a bit, I think my plan is to add a new
command called reqvar that can be used as a way of getting a local
variable from the ::request namespace. We'll leave the
::request::global command
I notice that the 'cookie delete' command was removed from the docs, but it
still exists in the cookie.tcl file. Any particular reason? I found it a nice
and clean command for deleting a cookie instead of:
cookie set foo -minutes -1
Which just looks stupid. 0-]
Also, I have found something
Giving as granted we are using Tcl8.5 from now on we can obviously expand,
reform and/or complement commands and packages. I'm sure Damon is thinking
of our database access module for example. Also smaller databases (headers,
cookies, forms, environment) may benefit of dicts to improve
I think one of the biggest advances in the potential for the use of Rivet by
others has been the creation of a Linux RPM and a FreeBSD port of Rivet 2.0.
While I enthusiastically welcome further Rivet development, successful
efforts to grow the user base will yield more energy and more
Just jumping in here. I'm working pretty heavily in Rivet for the next few
months, so I will be updating little things and making changes a lot. The form
package is due for some updating and a bit of an overhaul, I think. I know
that Karl said they have a version that returns the form
You need to write a helper function to create the DB connection if it doesn't
already exist and then return it if it does. The reason you're hitting this is
because every time you request a page, you get a random child process from
Apache. You don't know which one you're going to get, and
/10 12:12 PM, Damon Courtney da...@tclhome.com wrote:
Putting on one of my other hats for a moment - is this a service that
the Tcl Community Association should be offering to the community? Or
is this something better handled via sourceForge or the other code
repository services.
Just
It takes minutes to settle down before our stuff can put the
server back into the webserver. What would be incredibly cool would
be to be able to load up the 468 packages in the parent httpd process
one time and then have each child process use the same Tcl interpreter
already loaded
I'm just looking at some of the code for the first time in a while so forgive
me for not commenting sooner.
Are you talking about just moving the rivet commands into a ::Rivet namespace?
It sounds like from this and your previous Rivet command scope email that
you're trying to unify
Freakin' awesome! Good work, Massimo, and thank you. Looks like the giant may
awaken for a bit after all. 0-]
D
On Jan 25, 2011, at 12:40 PM, Karl Lehenbauer wrote:
You are correct, Massimo. We have eight cores, 200 children, and before
the ServerInitScript patch the machine had a very
With this latest project of mine I actually started work on a framework built
solely around Rivet. I'm not shooting for something that works across web
servers or something that is portable, I'm writing something that takes
advantage of all the things Rivet has to offer. I call it Skyscraper.
. The library includes returning PostgreSQL query results as JSON.
It can parse, too, but the results are left-to-right so it's gotta be
taken further to be useful.
On 1/27/11 10:49 AM, Damon Courtney da...@tclhome.com wrote:
With this latest project of mine I actually started work on a framework
This is where I'm not exactly sure how tightly things are integrated between
Javascript and most frameworks. I know that Rails supports jQuery and
Prototype, I believe, but I don't know exactly where they have them integrated
and for what purpose.
The only integration I have so far is in a
If Karl says it's ready and he's already using it in production, that's good
enough for me. Push it.
Also, I've been thinking maybe we need to enable SeparateVirtualInterps by
default. I realize it's my own stupidity, but when developing in a dev vs.
production environment (usually on
Also, I've been thinking maybe we need to enable SeparateVirtualInterps
by default. I realize it's my own stupidity, but when developing in a
dev vs. production environment (usually on different virtual hosts), this
really hosed me up the other night until I figure it out. Is there
really a
On Feb 15, 2011, at 8:03 AM, Massimo Manghi wrote:
I've just merged the latest commits from trunk into branches/rivet-namespace.
This branch holds the code that introduces the ::Rivet namespace where all
the module commands are located. Commands in librivet.so are now placed in
the
Just out of curiosity, what is the compelling reason for removing 1.x support?
Does it no longer work? Is the work to support it too much work going forward?
Note that I'm not suggesting we should keep it, I'm just wondering if there is
a specific reason for removing it.
On Apr 19, 2011, at
interpreter per thread. That seems like
a pretty good fit. Is it even relevant?
On 7/29/11 1:16 PM, Damon Courtney da...@tclhome.com wrote:
I don't recall being the one to addd that code, but I would imagine we
need to go with Apache's model here. We run inside Apache's world, for
the most
Comments:
load_response:
- insured that output array exists
Just to note, you are breaking compatibility here. Previously one could rely
on ![info exists response] to test whether any response had, in fact, been
loaded. I'm not a backward compatibility nut, but change for the sake of
. Don't
overcomplicate it.
Them's my two cents.
D
On May 30, 2012, at 10:20 AM, Harald Oehlmann wrote:
Am 29.05.2012 17:26, schrieb Damon Courtney:
## If you don't mind creating a variable in the request namespace
autogen_[incr ::request::__formElemCount]
OR
autogen_[info cmdcount
30, 2012, at 10:42 AM, Harald Oehlmann wrote:
On May 30, 2012, at 10:20 AM, Harald Oehlmann wrote:
Refering to the issue to generate the value idcur of:
label ref=idcurlabeltext/labeloption id=idcur name=namecur
value=valuecur/
Am 30.05.2012 17:34, schrieb Damon Courtney:
The ID need only
Have we moved on to 8.5+ only support? If so, I'd like to start cleaning up
some of the older code that still uses Tcl 8.4-isms.
I don't remember where the discussion on this topic eventually led, but I think
we can all agree to drop 8.4 support if we haven't already.
On Sep 13, 2012, at
Is this documented somewhere? I poked around the docs a bit (which are
hideous, by the way) and couldn't find it mentioned. In fact, other than our
examples, I found only a single mention anywhere that ? ? was how you
actually GET Rivet code into a webpage.
In using the source (Luke), it
Why don't add a configuration option to make Rivet using safe interpreters?
David and I discussed it back in the day when Rivet first started, but creating
an interpreter (especially a safe one) on every request was WAY more expensive
than creating a namespace for each request, and most people
I use the HTTP package within Rivet to make outside requests all the time. Not
sure what could be causing the problem. Try without the timeout and just see
how long it takes to come back. The problem with the timeout feature of the
http package is that it times out even if the request comes
Don't know of a Tcl package, but you might try the xdg-mime utility on most
Linux / UNIX distros.
On May 15, 2013, at 12:29 PM, Massimo Manghi massimo.man...@unipr.it wrote:
I'm distributing some Powerpoint files along with other binary (images)
files. I wish to determine the correct
Anyone know off the top of their head what versions Rivet compiles with and,
more importantly, which it doesn't?
-
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail:
When building Apache, Tcl and Rivet from source, I always have to build Rivet
with:
./configure --with-apr-config=/usr/local/apr/bin/apr-1-config
Else the Rivet build fails because it can't find apr.h. I built and installed
the APR package in its default place, so this is where it wants to
Using the event MPM with a non-threaded Tcl works fine. That's what I use just
because it's the default in most cases, so I had never hit the issue being
discussed. When I recently built a new server, I tried a threaded Tcl with
prefork (as our docs say) and hit it. When I compiled back to
You can't do puts -nonewline on one side and then gets on the other. It
will hang forever waiting for the newline to come through. That's what gets
does. It reads up to the newline character.
And since you didn't put the socket in non-blocking mode, the gets will block,
waiting forever for
The original intent was that once you've said you're going to redirect to
another page, you should simply stop processing. So the command would return a
RETURN code telling Tcl to return from the current function.
I don't think it ever really worked the way it was intended (at least not in my
that should work like described above
it's getting trickier than expected...
-- Massimo
On 01/20/2014 06:29 PM, Damon Courtney wrote:
Ugh. Don’t do that at all. Overriding Tcl’s [info] command (or any
core commands) by renaming and replacing is a path to doom.
The good news is that we
I would suggest that for now we leave the [info script] behavior
alone. It doesn’t hurt anyone that I can see, and it would break
do you mean you want to keep that ugly hack in Rivet_SendContent?
If you want to remove it, I’m fine with that. Just know that it creates an
incompatibility.
The channel mechanism is actually quite flexible out of the box. Anything Tcl
lets you do, you can do with the stdout channel in Rivet. For example:
fconfigure stdout -buffersize 100 -buffering full
And you have almost a megabyte of output before the channel will flush (unless
you [flush
Don’t worry, I got it. :) And, I agree. I didn’t realize parse was doing a
flush of the output. We should fix that.
I also agree that redirect should cause an abort (or something like it). I
already do that in my own code, as it makes no sense to redirect and then keep
processing. It could
::abort_page supports an optional code as
argument, so that any AbortScript can figure out what caused the page to
abort. Any Tcl object could work as argument (even a dictionary). Do you
have suggestion?
-- Massimo
On 12/15/2014 06:51 PM, Damon Courtney wrote:
Don’t worry, I got it. :) And, I
, in order to keep the 'permanent' semantics consistent,
the default must be 1
-- Massimo
On 12/15/2014 06:51 PM, Damon Courtney wrote:
proc ::rivet::redirect {url {permanent 0}} {
no_body ; ## don’t output anything on a redirect
headers set Location $url
headers numeric [expr
these
exceptions in the abort_page argument. They can get the URL from
Location but they need to know why execution got there in the first place
-- M
On 12/15/2014 10:20 PM, Damon Courtney wrote:
I would just abort with “redirect”. If they want the location, they can call
[headers set Location
that rushing a decision would spoil a more
elegant way of encoding this (and other) conditions
-- Massimo
On 12/15/2014 10:51 PM, Damon Courtney wrote:
Can’t we just call [abort_page “redirect”] from the proc instead of
without an argument? Then at least someone can check the abort code
a some special code in order
to give us a chance to abort redirection and maybe take some action.
What do you think?
-- Massimo
On 12/15/2014 11:00 PM, Damon Courtney wrote:
I had thought about that. I would vote for something extensible like a dict
with a required field
Which actually brings up something I’ve been thinking about for a while.
Do we want to keep Rivet under the Apache umbrella? Do we gain anything from
being an Apache project, really? Or is it just a lot of bureaucracy we have to
suffer through?
My feeling is the latter. :(
D
On Dec 17,
Forgive me, I’m not familiar with the internals of the code anymore, but I’m
working on getting back up to speed.
What’s in the src/apache-2 directory that we’re dropping?
D
On Dec 18, 2014, at 10:30 AM, Massimo Manghi mxman...@apache.org wrote:
I had no feedback on my proposal of
Tcl is not a popular language. It’s not GOING to be a popular language. Nothing
we do in Rivet will change that. Although, Rails made Ruby popular, so who
knows. I don’t care. I use what I like and will continue to do so.
The point was simply that the open source world is much more vibrant in
changes via pull requests:
https://git-wip-us.apache.org/ https://git-wip-us.apache.org/
On Thu, Dec 18, 2014 at 11:05 AM, Damon Courtney da...@tclhome.com
mailto:da...@tclhome.com wrote:
Tcl is not a popular language. It’s not GOING to be a popular language.
Nothing we do in Rivet will change
but it should be treated as an opaque structure for compatibility
::rvterr code $err_object
==
redirect
::rvterr exists location
== 1
::rvterr get var1
==
url
the dictionary itself is good but it doesn't encourage standardization
and compatibility if it's not concealed within some
be a
little tricky.
On Jun 17, 2015, at 4:52 PM, Massimo Manghi mxman...@apache.org wrote:
On 06/17/2015 10:29 PM, Paolo Bevilacqua wrote:
On Wed, Jun 17, 2015, at 04:43 PM, Damon Courtney wrote:
I think we’ve found your problem. More information is always better. :)
parray prints the array
I think we’ve found your problem. More information is always better. :)
parray prints the array contents directly, it DOES NOT return a value. So, if
you’re logging this to a log file, you will see nothing from parray.
If you want to see what’s in an array, use
puts $log [array get response]
I think the ability to create the interp up front (on startup) is really
useful. Yes, “lazy” creation of the interp on first request could be a thing
too, but I think maybe we need a preference here. In my case, I’m currently
doing “lazy” loading, not of the interpreters, but of my code. So,
I’m with Anton here. I don’t think [exit] within a Rivet interp should be
possible. It’s just not something you should be doing, and in almost all cases,
you’re not doing what you think you’re doing.
I learned this hard lesson back in the NeoWebScript days. I would call [exit]
to terminate
Agreed. We’re probably not buying much in that C code except a lot more code
for the same thing.
I’m like Massimo in that almost all of my recent projects have consisted of a
single index.rvt in some directory along with a mod_rewrite call to that file
to route the request. I didn’t use the
Never mind. I found it.
D
> On Nov 12, 2016, at 9:57 AM, Damon Courtney <da...@tclhome.com> wrote:
>
> EVERYTHING is a string, Massimo!
>
> I don’t think is a breaking change. I don’t imagine anyone is using the
> “undefined” behavior, and an empty string is def
Also, I have no idea what my SVN credentials are, so I can’t commit anything. I
don’t particularly want to deal with the bureaucracy of all that, so can I just
submit a patch?
D
> On Nov 12, 2016, at 12:23 PM, Damon Courtney <da...@tclhome.com> wrote:
>
> The first thing I
EVERYTHING is a string, Massimo!
I don’t think is a breaking change. I don’t imagine anyone is using the
“undefined” behavior, and an empty string is definitely the right answer for
Tcl.
Is there anywhere I can browse this code on the web? I think this will be a
great change and
> There are still a few calls to Tcl_EvalObjEx for procedures already defined
> at Tcl level that can be safely called from ::Rivet::request_handling
>
> -- Massimo
>
> On 11/12/2016 06:20 PM, Damon Courtney wrote:
>> Never mind. I found it.
>>
>> D
Sorry, Massimo. With the Thanksgiving holiday this last week, I just didn’t get
a chance to test it, and I didn’t want to sign off without having at least
compiled and given it a run through.
Damon
> On Nov 28, 2016, at 4:51 PM, Massimo Manghi wrote:
>
> On 11/22/2016
+1
> On Jul 26, 2017, at 9:09 AM, Massimo Manghi wrote:
>
> OK guys, PMC menbers please vote for releasing the artifact available from
>
> http://www.rivetweb.org/~mxm/rivet/rivet-2.3.4rc1.tar.gz
>
> as Apache Rivet 2.3.4 GA software. Please express you're vote as +1
+1
> On Nov 7, 2017, at 10:05 AM, Massimo Manghi wrote:
>
> Please, PMC members, vote to release rivet-2.3.5rc2.tar.gz as GA software of
> Rivet. The archive is located at
>
> http://www.rivetweb.org/~mxm/rivet/
>
> [ ] +1 OK
> [ ] 0 abstain
> [ ] -1 Needs more work
>
I think that’s a great idea. I didn’t know Apache had that, or I think we would
have jumped on it years ago. :)
Damon
> On May 27, 2018, at 5:41 AM, Georgios Petasis wrote:
>
> Hi all,
>
> I see that many projects have a read-only git mirror. These projects are
> listed
+1
Damon
> On Jul 2, 2018, at 3:53 AM, Massimo Manghi wrote:
>
> Dear PMC members
>
> this is the vote for releasing the artifact
>
> http://www.rivetweb.org/~mxm/rivet/rivet-3.0.2rc2.tar.gz
>
> as Rivet 3.0.2 GA software
>
> [ ] +1 OK
> [ ] 0 abstain
> [ ] -1 Needs more work
>
> --
+1 from me. I’m going to implement it on some of my servers very soon. The new
internals are VERY nice, good job, Massimo. :)
D
> On Jan 17, 2018, at 9:58 AM, Massimo Manghi wrote:
>
> Thank you Harald, Brice and Ronnie
>
> George, David and Damon, will you express
Wouldn’t you want to check the X-Forwarded-For header and use the user’s real
IP address instead? Not that your request isn’t valid, but you generally want
to ignore the IP address of your proxy and instead get the real IP. Especially
in your logs. You can make Apache do it automatically with
Not a bad idea, I meant. :)
Damon
> On Jan 31, 2018, at 2:02 PM, Damon Courtney <da...@tclhome.com> wrote:
>
> Wouldn’t you want to check the X-Forwarded-For header and use the user’s real
> IP address instead? Not that your request isn’t valid, but you generally want
There’s no real reason to include IP address. Anything random will do. I always
use a combination like this:
set s [clock seconds][pid][clock clicks][info cmdcount][info hostname]
Any of those will do, so a bunch of them together is probably overkill, but
that should produce a significantly
I vote yay. Great work, Massimo.
Damon
> On Nov 2, 2020, at 5:38 PM, Massimo Manghi wrote:
>
> One more RC available from brubeck.rivetweb.org/~manghi/rivet/ (3.2.0rc3)
>
> I kindly ask the PMC members to express a vote to release this artifact as
> Rivet 3.2.0 GA software
>
> thank you
>
+1
Damon
> On Nov 11, 2021, at 5:18 AM, Massimo Manghi wrote:
>
> Still waiting to see if George, David, Damon and Ronnie want to cast their
> ballots. Formally we could call the vote but I'd like to have them have their
> say
>
> -- Massimo
>
> On Tue, Nov 9, 2021 at 10:00 AM Massimo
Hey, Massimo!
Can we get a link to the change submission on raw_post? I’ve had a few
problems with that one myself over the years, and I’d like to review the
changes.
Damon
On Oct 3, 2023 at 10:09:52 AM, Massimo Manghi
wrote:
> Hi everyone,
>
> a release candidate for rivet 3.2.3 is
91 matches
Mail list logo