A place to be (re)educated in Newspeak

Sunday, August 31, 2008

Foreign functions, VM primitives and Mirrors

An issue that crops up in systems based on virtual machine is: what are the primitives provided by the VM and how are they represented?

One answer would be that those are simply the instructions constituting the virtual machine language (often referred to as byte codes). However, one typically finds that there are some operations that do not fit this mold. An example would be the defineClass() method, whose job is to take a class definition in JVML (Java Virtual Machine Language) and install it into the running JVM. Another would be the getClass() method that every Java object supports.

These operations cannot be expressed directly by the high level programming languages running on the VM, and no machine instruction is provided for them either. Instead, the VM provides a procedural interface. So while the Java platform exposes getClass(), defineClass() and the like, behind the scenes these Java methods invoke a VM primitive to do their job.

Why aren’t primitives supported by their own, dedicated virtual machine language instructions? One reason is there are typically too many of them, and giving each an instruction might disrupt the instruction set architecture (because you might need too many bits for opcodes, for example). It’s also useful to have an open ended set of primitives, rather than hardwiring them in the instruction set.

You won’t find much discussion of VM primitives in the Java world. Java provides no distinct mechanism for calling VM primitives. Instead, primitives are treated as native methods (aka foreign functions) and called using that mechanism. Indeed, in Java there is no distinction between a foreign function and a VM primitive: a VM primitive is foreign function implemented by the VM.

On its face, this seems reasonable. The JVM is typically implemented in a foreign language (usually C or C++) and it can expose any desired primitives as C functions that can then be accessed as native methods. It is very tempting to use one common mechanism for both purposes.

One of the goals of this post is to explain why this is wrong, and why foreign functions and VM primitives differ and should be treated differently.

Curiously, while Smalltalk defines no standardized FFI (Foreign Function Interface), the original specification defines a standard set of VM primitives. Part of the reason is historical: Smalltalk was in a sense the native language on the systems where it originated. Hence there was no need for an FFI (just as no one ever talks about an FFI in C), and hence primitives could not be defined in terms of an FFI and had to be thought of distinctly.

However, the distinction is useful regardless. Calling a foreign function requires marshaling of data crossing the interface. This raises issues of different data formats, calling conventions, garbage collection etc. Calling a VM primitive is much simpler: the VM knows all there is to know about the management of data passed between it and the higher level language.

The set of primitives is moreover small and under the control of the VM implementor. The set of foreign functions is unbounded and needs to be extended routinely by application programmers. So the two have different usability requirements.

Finally, the primitives may not be written in a foreign language at all, but in the same language in a separate layer.

So, I’d argue that in general one needs both an FFI and a notion of VM primitives (as in, to take a random example, Strongtalk). Moreover, I would base an FFI on VM primitives rather than the other way around. That is, a foreign call is implemented by a particular primitive (call-foreign-function).

Consider that native methods in Java are implemented with VM support; the JVM’s method representation marks native methods specially, and the method invocation instructions handle native calls accordingly.

The Smalltalk blue book’s handling of primitives is similar; primitive methods are marked specially and handled as needed by the method invocation (send) instructions.

It might be good to have one instruction, invokeprimitive, dedicated to calling primitives. Each primitive would have an identifying code, and one assumes that the set of primitives would never exceed some predetermined size (8 bits?). That would keep the control of the VM entirely within the instruction set.

It is good to have a standardized set of VM primitives, as Smalltalk-80 did. It makes the interface between the VM and built in libraries cleaner, so these libraries can be portable. We discussed doing this for the JVM about nine or ten years ago, but it never went anywhere.

If primitives aren’t just FFI calls, how does one invoke them at the language level? Smalltalk has a special syntax for them, but I believe this is a mistake. In Newspeak, we view a primitive call as a message send to the VM. So it is natural to reify the VM via a VM mirror that supports messages corresponding to all the primitives.

A nice thing abut using a mirror in this way, is that access to primitives is now controlled by a capability (the VM mirror), so the standard object-capability architecture handles access to primitives just like anything else.

To get this to really work reliably, the low level mirror system must prohibit installation of primitive methods by compilers etc.

Another desirable propery of this scheme is that you can emulate the primitives in a regular object for purposes of testing, profiling or whatever. It's all a natural outgrowth of using objects and message passing throughout.

158 comments:

Patrick said...

Gilad--

If I understand it correctly, in HotSpot there are a number of functions which are treated as "intrinsic", which I believe are declare to be (from Java) "native", but whose implementation is actually part of the VM itself (e.g. there is no call leaving the VM boundary). IIRC, this is done primarily for performance--are you including these in your discussion as well?

Thanks
Patrick

gcorriga said...

Hi Gilad,

if you remember, I asked you a question close to the topic of this post at the end of your keynote in Amsterdam.

It seems to me that you've basically turned the problem upside down: instead of worrying how to interface the language with the VM, you worried about how to interface the VM with the language. Am I correct?

Gilad Bracha said...

Giovanni,
What the VM interfaces to is the language *implementation* - which is not the same as the language itself.

The VM already has to do this - the VM typically knows about Object, Class, Process etc. So making VMMirror a special object that is part of the VM implementation is no big deal.

Much more importantly, it gives programmers access to the VM with a clean abstraction they are used to - an object - that fits in with how everything else is handled in Newspeak.

Steve said...

Looked at from the standpoint of the Smalltalk programmer, the idea of putting the primitives together in a single object has some attractions. For one thing, it is clear where such behaviour resides.

OTOH primitives often implement quite different behaviours - eg. create an instance of some class, perform garbage collection, evaluate a block. It is not clear that these behaviours belong on the same object, other than due to being primitives.

By that measure the VMMirror becomes more of a library object; essentially a bucket for disparate behaviours that happen to be primitives.

I'm not sure I feel completely comfortable with that.

Ryan said...

I think putting primitives into an object/objects is a really great idea because the more uniformly the objects/messages metaphor is applied, the more powerful it becomes. Perhaps in objects, primitives will be more accessible to programmers who haven't learned the finer points of the platform as deeply, and some creative uses might be found.

Gilad Bracha said...

Steve,

What happens in practice is that whatever library that are now implemented as primitives, are instead implemented as calls on VMMirror. So for most programmers, nothing changes.

What has changed is that the language is no longer burdened by an extra misfeature, and access to primitives is controlled the same way as everything else.

So security, or testing, or browsing (to take 3 prominent examples) do not have to handle primitives as a special case.

Steve said...

So how are you proposing that primitives be added to the VMMirror? Is there any high-level language coding involved at all to do so, or would creating and declaring the primitive in the VM itself be enough?

What about primitive failure code? Typically that can be fairly low-level as well - such as recovering from an object allocation failure - and may well involve the calling of other primitives, which would now take the form of sending other messages to the VMMirror. It would be convenient to put such primitive failure code in methods on the VMMirror as well, at least in some cases.

Should VMMirror be a special object or a special class? Should its class be subclassable? Is it, in effect, a normal object in the high level language or is it intrinsically different as the embodiment of the interface to the VM?

Gilad Bracha said...

Steve,

Adding the primitive to the VM is all that would be required (whether that's high level language or not depends on what the VM is written in).

Primitives take an error handling closure as a parameter, much like Strongtalk. These are passed by the caller, written in Newspeak, and if they call other primitives, so be it.

From the perspective of the user, VMMIrror is an object. Of course it has a class, but you can't really do anything with it.

A general comment: the motivation for this arrangement is to make the system work better for its users, not to make it particularly convenient for VM implementors.

Steve said...

I only used the phrase "high-level language", since you had mentioned Java in the original post, and, leaving aside discussions of what constitutes a high-level language, I didn't necessarily want to limit the scope of the discussion to Smalltalk, though obviously that is where my interests lie.

At least in Strongtalk we can make some progress towards this goal fairly easily. By converting all of the existing primitives to a procedural form where the object that was the receiver of the message is now merely an argument to the primitive call on the VMMirror, we can at least move all of the current primitives to a VMMirror object.

One wrinkle that would need to be ironed out is that the compiler doesn't appear to support passing of error-handling closures held in variables as arguments to primitives, though possibly it would if they were explicitly typed.

In the first instance I would probably keep wrapper methods for the current syntax of primitive, since that will keep the first step simpler.

As an optional second step we could replace this VMMirror with a special purpose object provided by the VM.

It is the special-purpose nature if this object that concerns me, though. If it appears to the Smalltalk programmer as an ordinary object that just happens to invoke a primitive when a message is sent to it, then what would stop a programmer from attempting to mixin this behaviour into their own classes? Of course we could detect source references to VMMirror and generate bytecode to invoke the relevant primitive, but since the source for the compiler is written in Smalltalk, we have only deferred the problem to a different part of the image. Further, that would defeat simulation of primitive execution in Smalltalk code, which would be a nice feature to have.

I'm not necessarily averse to the idea. I'm just not that keen on introducing a special object that has to be treated differently not just by the VM, but also by elements of Smalltalk code.

I'm completely on board with making things better for the users of the VM at the expense of making them harder for the VM maker. OTOH I'm against making them harder for the VM maker if it doesn't provide extra value to the user. I'm not yet convinced that going further than moving the primitives to a VMMirror object is worth the extra effort involved.

Gilad Bracha said...

Steve,

This is getting rather detailed, so perhaps we should take it offline.

I certainly don't see a pressing need to change Strongtalk so the primitive calling syntax is gone. It would, as you suggest, suffice to wrap them in methods in a VMMirror class written in Smalltalk, and provide an accessor for an instance of it as part of the Newspeak platform object.

If one wants to really secure the system, there are many issues involved (the byte code format not least among them).

Maria Lena said...

No single programming language is best for all assignments. Indeed, even inside a solitary application, various pieces of an enormous program may be best executed with various types of dialects. A few sections may be best executed with objects in a statically composed language.
Cheap dissertation writing service

Sophia Smith said...

I think this is very outstanding and so beneficial for me. I truly appreciate the niche information shared in this content I am going to bookmark this! Your blog is more informative and words in this blog are so much extraordinary. Thank you so much for the sharing. online assignment help Australia -
auditing assignment -
university assignment help australia

David Martin said...

Thanks for sharing the post "Foreign functions, VM primitives and Mirrors" with us. The main purpose of "VM Primitives" is to operate multiple operating systems at the same time, from the same piece of hardware.

office.com/setup

Michael Jones said...

If you are also juggling between professional and academic commitments then you can go for instant Assignment help Sydney. There is no shame in asking can you take my online class.
Online Assignment Help Sydney

AlexaMartin said...

A foreign function is a mechanism by which a program written in one programming language can call routines or make use of services written in another.
office.com/setup

Studentsbuddy.com said...

Zucol bring many advantages to your business by increasing profitability and efficient problem-solving.

Anonymous said...

The design trip - creative design agency in Pune, India. The super creative designing experts create multiple forms of graphics, illustrations, pictures, typography and photography.

Desklib said...

Desklib, online study resources that help students in completing assignment. It covers various subjects. That will be plagiarism free as well as grammatically correct at an affordable prices.

Sophia Williams said...

Thanks for sharing such great information with us. Your Post is beneficial and the information is reliable for new readers. Thanks again for sharing such a useful post.
office.com/setup | Mcafee.com/Activate

vishnu said...

Thanks for sharing a great article.
You are providing wonderful information, it is very useful to us.
Keep posting like this informative articles.
Thank you.

Get to know about rakuma

Jhon Maccuine said...

Using your Microsoft Account associated with office to sign in will take you to the Dashboard for Office installation, If you are new to Office, you can create a New account and enter Product key to redeem and Install Office. office.com/setup
www.office.com/setup

Rakesh chandra said...

Thanks for sharing this awesome blog nowadays people won't write quality content rarely i found a quality blog on this topic.

SalezShark extensive support
for the best use of CRM software has aided many companies to interact with more customers and prospective buyers. However, the software is of no use if you are using it incorrectly.

helpinhomework.org said...

Get excellent sociology assignment help from the team of experts at Help In Homework and boost your academic career. Our experts will complete your sociology assignment as per the checklist of your academic institution and ensure that it is specifically crafted for you to help you submit the tailored assignment within the deadline. They have consistently provided engaging and plagiarism-free assignments to students all over the world at the most attractive price.

linda said...

Type Twitch Activate and click Go. Ensure that you have a Twitch account and perform the subscription process.
Twitch Activate | hbomax.com/tvsignin

News tech new site said...

Pretty! This was an extremely wonderful post. Thanks for providing these details. amazon.com/code

Canon Printer said...

Ooo thank you very much for this useful information. I am glad i read this article. You also good writer but you good thinker. I am happy after reading your post.

If you have the work of removing your print copy or you keep removing it, then you can love the ij.start.canon printer, you can come to our site to know about it better.

Unknown said...


Get Microsoft 365 setup by visiting microsoft365.com/setup. Sign in to Microsoft account, enter the product key and get apps quickly. Microsoft 365 is the best way to get all the apps of Office within one subscription.In case you are trying to log in at Microsoft365.com/setup, you can use the other accounts like OneDrive, Outlook.com, Skype, or Xbox Live (if you already are using any of these services).

Sophia Smith said...

I wanted to thank you so much more for that amazing and very best of useful web page you have created here and You many posts are so prefect and best. It can be full of ideas for those who are truly interested in that niche posts, Will be back again frequently to check up on new posts. Accounting Assignment Help - college homework help - physics homework help

Derek Lafortune said...

I thank the author for this capacious and informative article. As far as I know, primitive numbers are defined in terms of other fort words. The primitives are native to the target platform. Traditionally, most target platforms have had no problem mixing code and data, so the fourth dictionary will be a single data structure starting with primitives at the top, while later words will be defined as non-primitives. A typical word definition would have a heading containing the word's name, a link to the previous word in the dictionary (creating a linked list), followed by a code field and the actual definition. I gathered this information from posts on Instagram, in which the authors talked about creating virtual machines. I found a lot of posts on this topic there and noticed that in most cases they were published by accounts to which about 30 thousand subscribers were subscribed. I am sure that in order to achieve such indicators, the owners of these accounts used the services of https://soclikes.com/buy-instagram-followers to quickly increase their number.

James K. said...
This comment has been removed by the author.
ij.start.cannon said...

Thank you so much for sharing these amazing tips. I must say you are an incredible writer, I love the way that you describe the things. Please keep sharing.
If you are having any problem in running the printer, then you should definitely visit our site because every problem of the http//ij.start.canon printer has been told in our site in very easy way which will prove to be very effective for you. http//ij.start.canon/ijsetup

nonaberry said...

Keep posting such amazing post and do check Paypal login

lora2908 said...

Hey, here is boden your article and I very appreciate your information I shared with my friends circle and social media here is my blog when you required any branding your organization or software requirement and many technology updations so you can go and read this is very helpful your organization so more please contact me. and you visit here.McAfee Login
extender.linksys.com

Tom Cook said...

This applicationis considered for video calling across the globe. Be it with friends or family or with your colleagues, this application makes it possible to connect and do
video chat or conferencing, wherever you are. Skype Login canon.com/ijsetup | cannon/ijsetup | Cox webmail Login




Unknown said...

You will need to sign into your Amazon Prime Account during the activation phase. It is essential to have an Amazon Prime Account created. This account is only activated by a free login.
amazon.com/mytv
amazon.com/code
amazon.com/code
primevideo/mytv

Technologist said...

https://login-db.info/

Unknown said...

Amazon Prime Video allows you to access media and entertainment faster and more efficiently. Amazon launched Prime Video to meet its users' expectations of unlimited movie and video selections, which can be accessed anywhere, anytime. Prime Video is available on many devices. To activate Prime Video on a specific device, however, you must register it.www.amazon.com/mytv. We have provided the steps to generate the activation Code and register your device on Amazon.com/mytv for Prime Video.
www.amazon.com/mytv enter code
amazon.com/code
hulu.com/activate
primevideo/mytv
mytv

timmykeels said...

Great
Paypal Login
Another one
gemini login

Derek Lafortune said...

What about primitive failure code? Typically that can be fairly low-level as well - such as recovering from an object allocation failure - and may well involve the calling of other primitives, which would now take the form of sending other messages to the VMMirror. It would be convenient to put such primitive failure code in methods on the VMMirror as well, at least in some cases. I advise you to watch videos about vmm on YouTube. I found a couple of dozen of them there and noticed that under such videos there were always comments on which there were about 13 thousand likes! I'm sure this is because the authors of these comments used https://viplikes.net/buy-youtube-comment-likes to quickly increase their number.

shjinn said...

Thanks for sharing!for login and sign up guide visit https://mailsbug.com

jackpeterson said...

Great article do checkBigpond email login

admin said...

13377x
tamilrockers proxy
1377x proxy
tamilgun isaimini
isaidub
uwatchfreemovies
content://com.android.browser.home/
9kmovies.in
downloadhub.host
moviespapa
cinemavilla
rarbg proxy
romsmania
kissasian app
hdmoviearea
avast cleanup review
digital tv tuner device registration application
animefreak.tv
discord spoiler tag
movierulz
4movierulz
movierulz website link
4movierulz wap
1337x search engine
13377x.to
13377x unblock
content://com.avast.android.mobilesecurity/temporarynotifications
solarmovie
movierulz.com
4 movierulz
4movierulz
file:///sdcard/
filmy4wap tech
moviezwap
4movierulz

jackpeterson said...

Great article please checkBigpond email login

office.com/setup said...

Amazing website, Love it. Great work done. Nice website. Love it. This is really nice.
w-w-office.com/setup
Microsoft365.com/setup
Microsoft365.com/setup
ij.start.cannon
www.amazon.com/mytv

jackpeterson said...

Hi! this is nice article you shared with great information. Thanks for giving such a wonderful informative information. Do check
Telstra email login

Shiva said...

It is amazing post, i am really impressed of your post, its really useful. Thank you for sharing This article.
kissanime
oreo tv for pc
thoptv for pc

Link Roku Activation said...

Get activation code for Roku through Roku Com Link code. For setting up the Roku device, you have to connect the Roku TV or Roku to the internet. Get simple steps to activate your device anytime. Get in touch with us for an instant solution.

Jessica Peterson said...

Gain better scores in every assignment and exam with Essentials Of Psychiatric Mental Health Nursing Concepts Of Care In Evidence Based Practice 7th Edition Test Bank. Be on the top of your class.

parkerkenneth said...

Test banks and solution manuals are the best learning aids for any student. Try Solution Manual For Process Dynamics And Control 4th Edition with instant download and unlimited access.

Link Roku Activation said...

Now set up my Roku account using the Roku Com Link . Once the roku.com/link setup is complete, it is easy to perform the internet connectivity with the instructions on the screen. Talk to our expert technicians to get the Roku activation code. Visit us.

Anonymous said...

For a quick and easy canon.com/ijsetup on Mac, go to the Apple menu and choose “System Preferences.” After that, you should choose your printer from the list.
Get More info: canon.com/ijsetup

If you are having trouble while using canon printer on your device and you have tried every solution to fix the issue, then the last thing you are left with is to uninstall and re-install the Canon Printer driver. So, in this article, we have clearly discussed how to uninstall the printer on a Mac. This will be followed by a discussion on the re-installation process that can be easily done via canon.com/ijsetup
Get More info: canon.com/ijsetup

To complete the ij.start.canon process on a Canon Pixma printer, complete the initial setup, power it on, and then install the printer drivers on your device.
Get More info: ij.start.cannon

Tej Parker said...

Get the best Assignment Help service from professional and experienced assignment experts. Say goodbye to your assignment stress and pressure as you can avail professionally written assignments easily by following simple steps. All you need to provide is the requirement of the assignment and the professionals will deliver the solution. So, what are you waiting for? Try it now.

Unknown said...

Do you need an urgent loan of any kind? Loans to liquidate debts or need to loan to improve your business have you been rejected by any other banks and financial institutions? Do you need a loan or a mortgage? This is the place to look, we are here to solve all your financial problems. We borrow money for the public. Need financial help with a bad credit in need of money. To pay for a commercial investment at a reasonable rate of 3%, let me use this method to inform you that we are providing reliable and helpful assistance and we will be ready to lend you. Contact us today by email: daveloganloanfirm@gmail.com Call/Text: +1(501)800-0690 And whatsapp: +1 (501) 214‑1395

NEED A LOAN?
Ask Me.

fullhomeworkhelp said...

In the digital world you can have easy access to subject-matter experts. There are a lot of professional Assignment help who are ready to help students at a low prices. No, you will not have to compromise with the quality of your work or service. Generally, professionals understand that students have a limited budget and all of them cannot spend their limited money on expensive services. So, they make sure that discounts and cashback are there when students say “write my assignment at cheap price”. Some websites even provide affiliate programs. By using such programs actively you can even earn and use the same points/ money to pay for assignment.

fullhomeworkhelp said...

Ayurveda recommends treatment to fix kidney illnesses in the accompanying levels: Ahara (diet), Vihara (way of life), and Aushadha (drugs). Ayurvedic medicine for Kidney prescriptions for kidney sickness is convincing for constant kidney afflictions such аs kidney disappointment, kidney stones, PKD еtс.Ayurvedic medicine for uric acid

jack smith said...

SkyBet is the sports betting division of Betting and Gaming, a wholly-owned subsidiary of British Sky Broadcasting Group plc (Sky). Skybet login . Microsoft portal allows downloading office apps on your 32 or 64-bit system. Microsoft365.com/setup , Microsoft365.com/setup , Microsoft365.com/setup . Skype, the globally used application, provides video calls, chats, and voice calls for Business and individual both. skype login , skype logins .

ROHIT DUBEY said...

ccleaner piriform download and then follow the instruction to install the ccleaner to your device it make your system better and fast. If ccleaner installer has stopped working then you can contact our tecnical experts to get instead help.

Kate Aiden said...

Amazing content. hotmail

dana berg said...

https://www.blogger.com/comment.g?blogID=2447174102813539049&postID=7885861475997677863&page=2&token=1630472782642

Sarah Winget said...

we care for your grades and help you make progress in each regard. Our administrations are not focused to convey moment delight and consumer loyalty each time you submit a request for help on assignment. cheap assignment help

John Malcova said...


Amazon Prime is the best way to access unlimited entertainment content such as movies, web shows, and TV shows. Visit Amazon.co.uk mytv to activate Amazon prime video. You will need a 6-digit unique activation code to activate Amazon Prime Video. Without activation code, you can't access Amazon account or activate amazon device.

primevideo.com/mytv
amazon.com/mytv
paypal login
paypal login
paypal login
amazon.com/redeem

Portia Williams said...

Getting Solution Manual For Accounting And Finance For Non Specialists 6th Edition is easier than ever with our exclusive collection of testbanks and solution manuals online.

linda parker said...

College exams are not hard anymore! Face even the toughest tests and assignments with Solution Manual For Longwood Guide To Writing The 4 E 4th Edition right away!

linda parker said...

Updated version of Test Bank For Criminal Behavior A Psychological Approach 10 E 10th Edition available for instant download. Avail great discounts and offers now.

Portia Williams said...

Gain better scores in every assignment and exam with Test Bank For Foundations Of Nursing In The Community Community Oriented Practice 4e 4th Edition . Be on the top of your class.

komakdon said...

https://www.8deynews.com/567077/With a 5,000 mAh battery, the Xiaomi Redmi Note 9T can be easily used during the day and features such as listening to music; Check news or other items and used mobile capabilities.

cameras

48MP + 2MP + 2MP

The quality of the photos is not amazing.

The 13-megapixel selfie camera takes relatively good quality photos.

kimberlykeller said...

Hard exams, assignments and homework are a now things of the past with Solution Manual For Environment And You Plus Masteringenvironmentalscience With Etext Access Card Package . Order and download now!

joker123 said...

aduq online
agen aduq
situs aduq
daftar aduq
aduq terpercaya
aduq terbaik
situs IDNPlay
aduq online
aduq terbaik
aduq terpercaya

linda parker said...

Do not waste countless hours on your college assignments anymore. Get Test Bank For Entre Mundos An Integrated Approach For The Native Speaker 2 E 2nd Edition and work smart with better results.

linda parker said...

The secret for student success lies in the material you use for learning.Try Solution Manual For Snapshots An Introduction To Tourism Sixth Canadian Edition 6 E 6th Edition and feel the difference.

Portia Williams said...

College exams are not hard anymore! Face even the toughest tests and assignments with Test Bank For Principles Of Operations Management 8 E 8th Edition right away!

Unknown said...

http://www.thedesignportal.org/business/igp-institute/
https://www.walkscore.com/people/296500010919
https://www.spoke.com/lists/604b687a38d37e3dbd01de1a
http://www.thedesignportal.org/business/igp-institute/
https://indiabusinesstoday.in/users/detail/sunilsharma-10857

Wilson Valance said...

Internet is full of awesome data and this page is an excellent example of that.

Cris Jordan said...

Getting Psychology Homework Help is the ideal solution for any problems that students may have. Numerous advantages make it one of the most excellent options because it assists students in various ways.

Portia Williams said...

Information on web is always fascinating. Let me point you to this page with more interesting stuff!

Diane Parker said...

Make the best use of your time by browsing about this awesome topic right away!

Portia Williams said...

Hey great article.. find this excellent page, one of the most interesting info online.

Unknown said...

Canon printers are ideal for every situation wherever you need a document, paper, or photo print or even if you wish to scan, fax, and do more i Ij.start canon
ij.start.canon
canon.com/ijsetup

jameswoods said...

Established in the year 1988, Casca Remedies Pvt.Ltd is a Top PCD Pharma Company In India. Casca Remedies is known as one of the best Pharma Manufacturers. Casca Remedies is a trusted Third Party Manufacturing Company. We are the fastest growing Third Party pharma Manufacturing company in India. as we have satisfied many of our regular and new clients through our quality products.

jameswoods said...

Established in the year 1988, Casca Remedies Pvt.Ltd is a Top PCD Pharma Company In India. Casca Remedies is known as one of the best Pharma Manufacturers. Casca Remedies is a trusted Third Party Manufacturing Company. We are the fastest growing Third Party pharma Manufacturing Company in India. as we have satisfied many of our regular and new clients through our quality products.


Casca Remedies Pvt. Ltd.
Kuldeep Nagar, Ambala Cantt.
call Us: + 91-9034152525, 8683952525
chat Us: info@cascaremedies.com
Visit Us: www.cascaremedies.com


Michael Haydon said...

Nice sharing. We are also providing assignment help Toronto, homework help, make my assignment,
working capital assignment help, etc.

Mark Watson said...

Log in to your Linksys server account. Once the web interface opens, click Connectivity. Under the Firmware Update section under the Basic tab, click Check for Updates. Once the router detects a firmware update, you will be able to download and install the firmware on your device. To update the Linksys ea6350 firmware, select the Click here link to upgrade.

Unknown said...

Thankfully, we’re here to help make sure your jacket/coat is on point every time you walk out the door. Here are the best of our clothing men with different colors, available at topcelebsjackets.com.

Ina said...

Our history assignment help experts will likewise make it simpler for you to comprehend the various viewpoints identified with your field of study which will permit you to plan well for your impending assessment. Thus, our experts will consistently be there to help you become a specialist student of history in the coming time. visit - myassignmenthelp

ideasontrend said...


Its a really interesting and informative article for me. I appreciate your work and skills. itachi primitive hoodie

amin said...

People get bored over time and with age and seek entertainment, especially in retirement. In addition to filling their free time, this entertainment should help strengthen their minds and prevent mental problems associated with aging. Brain games do not prevent brain aging, but they do help a lot to improve the memory and consciousness of these people. Mind games and board games also affect the immune system of the elderly. In addition, playing these games increases their interaction with others and prevents isolation and depression.
https://tafahomonline.ir/%D8%A8%D8%B1%D8%AF%DA%AF%DB%8C%D9%85-%D9%88-%D8%B3%D8%A7%D9%84%D9%85%D9%86%D8%AF%D8%A7%D9%86/

rohit said...

Thanks for sharing such an informative blog which will surely be a big help to the small-medium enterprise so that they can choose the best-suited tool for their business.
keep it up. all the best
Best CRM Software In India

Portia Williams said...

Exams are easier with the TestBanks21 assistance. Find best selling Essentials Of Biology 4th Edition Test Bank and solution manuals and be on the top of your class today.

Aditya Rathore said...

Find Self Defense training near me ? Best Self Defense Classes in dehradun VR Combatives Academy ,Our experts give you Self Defense training by teaching the different methods using Strike techniques, Kick techniques, prevention tips and more.

miker.morriss said...

The best source for learning today are online resources. Students can find the best Test Banks and Solution Manuals Online including Theory And Practice Of Group Counseling 8th Edition Test Bank at TestBanks21.

jack smith said...

Microsoft365.com/setup is the best way to get all the apps of Office within one subscription . Visit canon.com/ijsetup/mg2522 to download and install the Canon Pixma MG 2522 Setup and enable your printer to execute various functions . canon.com/ijsetup mg2522 . Go through ij.start.canon/ts3122 and download the latest full driver & software package for PIXMA TS3122 ij.start.canon ts3122

Unknown said...

Assuming that you are likewise among st those amateurs who don't have the foggiest idea what is email query about yet wish to get to it, this article will help you.
AOL Desktop Gold download
email account lookup
1and1 webmail
Cable one Email login
AOL Mail Login

VelmaShackles said...

Getting Solution Manual For University Physics With Modern Physics 14th Edition is easier than ever with our exclusive collection of testbanks and solution manuals online.

Waseem Abbas said...


Diablo Crack 2022 (Diablo III) With Torrent Full Game Offline (Win + Mac) CLICK HERE TO DOWNLOAD Diablo three Crack now is living in America for the PC, PlayStation four, and Xbox One! Check out the whole PC Patch notes under to examine all regarding the most modern modifications. To see our console patch notes, click on proper here.


PE-Design Crack is programming for making weaving amalgamation. This program features auto and Photo Stitch has 130 worked in literary styles, similarly as 5 new content styles for minimal substance, unique kinds of lines to make complex plans weaving, customized creation of utilization.


Sharpen AI Crack is the primary sprucing and vibration discount software program that may distinguish between actual elements and noise. Create crisp photos even if capturing handheld, at night time, or with the shallow intensity of the field.

frzn said...

When we look back, we find that no one has ever been able to stand up to any technology. Science is advancing https://www.borna.news/%D8%A8%D8%AE%D8%B4-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-143/1268630-%D8%A7%D8%B1%D8%B2-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-%D9%81%DA%AF-%D9%81%D8%B1%D8%B5%D8%AA%DB%8C-%D8%B9%D8%A7%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%B1%D9%85%D8%A7%DB%8C%D9%87-%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C and the world is changing day by day on the path of improvement and progress.

Essien said...

Thank you for posting such a great blog article! I've found this website perfect for my needs. It contains wonderful and helpful posts. Keep up the good work. Thank you for this wonderful share. Meanwhile, visit dominion university post utme form for this year

Drugs Forum said...

boofing drugs
when does alcohol leave your blood
new jersey opiate rehab
somacid carisoprodol
is alcohol induced dementia reversible

charles said...

Amazing website, Love it. Great work done. Nice website. Love it. This is really nice.
plex.tv/link
plex.tv/link
hbomax.com/tvsignin
http //plex.tv/link
hbomax.com/tvsignin code
http //plex.tv/link

Emma Sara said...

Glò Jeg har været fan af Islandske Glò siden de åbnede i København for et par år siden. På menuen bedste takeaway københavn finder man de lækreste fyldige bowls, som både er mættende og proppede med gode ting. Hver gang jeg kommer forbi, er jeg i dilemma om, hvor vidt jeg skal gå efter en bowl eller en af deres wraps – Indisk Take away for sidstnævnte er virkelig også lækre. En evig favorit er dog deres mediterranean bowl, som består af de lækreste falafler og perfekt-tilberedte sweet potatoes.

Emma Sara said...

Almost all types of vape boxes do use the concept of customization, not only the vape wholesale vape cartridge packaging industry; all other packaging sectors focus on the custom boxes. And the main reason to follow the same technique over multiple boxes is more profit, which these boxes generated in the market.

sahanisha0105 said...

Our team presents the exceptional case of looking at an auxiliary carrier for students from the United States. We have experts who provide 100% confidential support for finding answers to your case study help assignments, so feel free to contact us now.

Neena07 said...

Students assignment help uk assist our customers with the exceptional and authenticate dissertation writing help. Our proofreaders do extra focus on the dissertation to ensure Online dissertation help uk without any error and plagiarism at the nominal price with 100% security and confidentiality guarantee.

Emma Sara said...


Retterne i de 10 -12 montre så fint ud. Men selv om kødet for det meste så ud indisk mad albertslund til at drukne i saucen, så virkede kødet tørt og trist. For lidt smag og alt for tørt.

Unknown said...

https://tinyurl.com/ycxxrfhz Cycling carbon diet is one of the types of slimming regimens based on the individual mobility and are not the same for all people. In the case of high physical activity, the person is allowed to eat more carbohydrates and should receive less carbohydrates in rest days. This diet is set up daily, weekly or monthly, depending on the conditions of individuals.

Global Translation Help said...

Nice blog on Foreign functions, VM primitives and Mirrors.Thanks for sharing. immigration translation service usa

Alex Kim said...

Do you need an authorized translation service in Singapore? We highly recommend Singapore Translators,Here,a great team of translators offer translation in various fields like legal,medical,business,academic at very lowest price.

remarkmart said...

I read all the articles. I appreciate you and get more knowledge that’s helped me. Keep it up. Thank you so much for sharing this
windows 10 activator txt
ben shapiro sister
lunk alarm planet fitness
green glass door

Technologynews said...

Thank you for giving your thoughts on this subject. This is a very well-written and useful article.
thoptv for pc
oreo tv for pc
Download alexa app for windows 10 pc

Alltimespost said...

Thanks for sharing this with so much of detailed information, its much more to learn from your article. Keep sharing such good stuff.
PSI Full Form in police
Windows 10 Activator txt
limetorrents
Ben Shapiro Sister

Mywifiext said...

I read all the articles. I appreciate you and get more knowledge that’s helped me. Keep it up. Thank you so much for sharing this
Mywifiext

remarkmart said...

I am glad I read this article. You are also a good writer but you good thinker. I am happy after reading your post.
windows 10 activator txt
ben shapiro sister
lunk alarm planet fitness
green glass door
how late is the closest grocery store open

Technologynews said...

Thank you for sharing your thoughts. good work keep it up all the best.
thoptv for pc
oreo tv for pc
Download alexa app for windows 10 pc

Alltimespost said...

Your post is very good. I got to learn a lot from your post. Thank you for sharing your article for us. it is amazing post.
PSI Full Form in police
Windows 10 Activator txt
limetorrents
Ben Shapiro Sister

Mywifiext said...

I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
Mywifiext

ROHIT DUBEY said...

imap.aol.com not responding imap server so you can connect your desktop mobile and etc. On your account aol online service provider which give you the different kinds of services which you have never seen before aol imap server not responding

Global Translation Help said...

Nice article and explanation.Thanks for sharing. If you are really looking for a perfect translation of passport then you should contact our team of Global translation help whose team offer professional translation services USA for all kinds of documents at a very reasonable price.

Nelson Lima said...

QQI Assignments is the on-stop solution for all academic writing problems. However, we provide all types of assignment help in Ireland and provide 24/7 support to the students to complete their assignments on time. We ensure that you won't disappoint with our services. So, hurry up buy our Online Assignment help Ireland services now.

Anton Dcruze said...

Everyone wants to get a good grades in their college assignments but sometimes it is hard to achieve that due to multiple reasons like time issue, lack of understanding of subject, low interest in any subject and etc. Doing an assessment is really a difficult task as it is quiet difficult to find their assessment answers, therefore students may seek for CHCCOM005 Assessment Answers .
Here is a solution for this problem, just pay for assignment and get the help of best academic writers available in market. I would like to recommend sample assignment for any help required related to assignment or assessment.

custom boxes said...


Our aim is to use the most high quality and special material for the preparation of the e cigarette packaging boxes. Your product can be preserved for a longer time than you’d imagine.

MalaysiaAssignmentHelp said...

Do you also want an Assignment helper in Malaysia for assignments? We lend expert authors for assisting you with the projects. Our experienced writers will assist you with everything. You will get 100% plagiarism-free content within the deadline. Hire our assignment helper online and finish your project works.

Unknown said...

Thanks for the information I liked it. I would like to share some thoughts regarding college essay help, As I am working as a programming assignment experts, those who are searching for assignment assistance. Get in touch with us.

Sample Assignment said...

you may get in touch with a chcprt001 assessment answer service providers willing to prepare your assignment at a very economical price range. They will assist you with high-quality assignments through which you can get good marks in your academic subjects. There are several advantages of taking academic assistance from these service providers. These include timely delivery, Affordable Prices, Unlimited Revisions, A 24x7 support system, 100% Plagiarism Free Research-Based content, Proofreading and Editing, and one-on-one live sessions.
WHAT IS POWER ENGINEERING, AND HOW DOES IT WORK
Career Option in Political Science
A Comprehensive Descriptive Essay Guide

youtubeactivity said...

Youtube.com/activate
To get a youtube.com/actuate code for the application, clients need sign in into their Google account either through Gmail or Google+ account that is connected with their YouTube account.Once a record are adjusted, the client is incited to give it admittance to their gadget and the YouTube application

Anita Frantz said...

This is an excellent article for gaining knowledge. I think it's the best on this valuable topic. Additionally, I have a Kohi CPS Test profile. Having a look at the profile, you will learn about Kohi Click Test.

helpinhomework123@ said...

Help In Homework is one of the most reputable online educational service providers. This is because our work speaks for itself. We are the number one assignment helper website and have helped tens of thousands of students in various academic disciplines over the years.

helpinhomework123@ said...

At Great Guest Posts, we are proud that we offer the best guest posts available on the market. Whether you want to reach a specific audience or enhance your SEO, our guest posts are hand-picked and distributed through a number of channels. Our writers guarantee the highest quality and latest up-to-date content.

helpinhomework123@ said...

Study Help Me is very selective with our guest post partner sites and only allows the best. We will ensure to boost your site authority and SERP performance with powerful white-hat links. Paid Guest posts links are also considered 100% natural as they’re surrounded by content related to your business.

charles said...

Amazing website, Love it. Great work done. Nice website. Love it. This is really nice.
Hbomax/tvsignin
Disneyplus.com/Begin
Disneyplus.com/begin code
Fubo.tv/connect

ESMERALDA said...

I enjoyed reading the above article, explained everything in detail, and the article was very interesting and effective. Thank you, and I look forward to hearing from you in the future.

바카라사이트
토토사이트
토토사이트
사설토토
안전놀이터
바카라사이트

Alex Kim said...

This is a very interesting and informative post on Foreign functions, VM primitives, and Mirrors. If you want to translate the passport for the use at ICA office then hire Singapore translators team.Their translators offer ica translation services in singaporeat very lowest price.

Romero said...

Excellent article. Thank you for sharing this. The Butterfly click test can also be used to assess your clicking speed. If you're interested to test your gaming click speed visit the blog Faster butterfly clicking test to see how fast you can click.

routwer said...

Netgear router login page.
To control your Netgear wireless router, your need to visit a Netgear router login page. There are numerous numbers of such web pages, but the best one to establish a genuine connection is www.routerlogin.net. You can also type in the default IP address of your router that is generally 192.168.1.1 or 192.168.0.1. Once you are logged in using the default username and password, you can control your router in any ways you want.

dgdfgerg said...

youre so cool! I dont think ive read something which includes tng something absolutely new on the web . Satisfactory with your permission allow me to seize your feed to preserve updated with drawing close post. Thank you one million and please preserve up the satisfying paintings 먹튀폴리스

Kaslo Jackk said...

hi there! I just desire to deliver a significant thumbs up with the brilliant records you could have here for this publish. I am returning in your weblog for more soon. Have you ever concept approximately writing an ebook or guest authoring on different websites? I've a weblog focused on the equal thoughts you speak and would like to have you ever percentage a few testimonies/data. I realize my audience would revel in your work. In case you are even remotely involved, sense free to shoot me an electronic mail. Wow!, this become a pinnacle exceptional submit. In concept i’d want to post like this as nicely – taking time and real effort to make a nice article… but what am i able to say… i hold putting it off and in no way seem to get some thing executed 슬롯사이트

Robert11 said...

thanks for sharing this facts. I certainly like your weblog post very much. You've got without a doubt shared a informative and thrilling weblog submit . You beget a completely exciting website. I just like the complete facts which you provender with every article. Very first-rate article, i loved reading your post, very exceptional percentage, i need to twit this to my followers. Thanks! Wow, high-quality, i was questioning a way to treatment zits clearly. And discovered your website online by means of google, learned a lot, now i’m a bit clear. I’ve bookmark your site and additionally add rss. Keep us updated. I was surfing the internet for facts and came across your weblog. I am impressed by the facts you have got on this weblog. It indicates how well you understand this challenge. Most effective aspire to say ones content may be as great. This readability with your put up is extraordinary and that i may think you’re a guru for this difficulty. Wonderful in conjunction with your concur allow me to to capture your cutting-edge supply to preserve modified through using drawing close blog submit. Thanks loads loads of along with you ought to cross on the enjoyable get the job executed. 먹튀검증

Tradeflock said...

9kMovies (2022) - Download Latest Free 1080p HD Rip, 480p, 720p, 360p HD Movies on 9kmovies - greatest movie download sites. Now, let us see how we can easily download any movie from these websites by following our step-by-step guide.

Writer said...

Get correct this on how to format an essay in mla paper online from my friend who works as a writer online. I can assure you about its professionalism as I used his help for many times yet.

ROHIT said...

Thanks for the best blog. it was very useful for me.keep sharing such ideas in the future as well.

here is my website blog - https://www.mattadrawing.com/blogs.php?slug=which-materials-are-used-to-make-flat-profile-bar

Summy Spaces said...

Much gratitude to you for posting such an unprecedented article.

shipping container pools | container pool

SD said...

Thanks for sharing useful information. Keep it up!! Also visit Best pool service software to level up your business

Malaysia Translators said...

Nice post
For businesses looking to expand their reach in Malaysia, MalaysiaTranslators.com is the go-to translation company in Malaysia. They can help companies translate their marketing materials, websites, and other documents into the local language and culture, ensuring that their message is well received by the target audience.

Classy Artz said...

Great Post
Explore the essence of elegance and artistic expression at Classy Artz. Our platform is a treasure trove of exquisite artworks that embody a sense of refined beauty. Each piece in our collection has been thoughtfully curated to showcase the mastery of the artists behind them. From mesmerizing paintings to awe-inspiring sculptures, Classy Artz offers a diverse range of creations that will enrich your environment and evoke emotions. Immerse yourself in the world of artistry and discover the transformative power of classy art at Classy Artz.

Krish Kumar said...

One of the best post i had ever read. Thank you for your post keep writing.
Children's Swimming Lessons Clyde

hastenchemical said...

Ice Transportation – Texas plays a vital role in meeting the demand for ice-related products and services in Texas. Specialized vehicles and containers are utilized to transport ice in various forms, such as ice blocks, ice bags, and ice sculptures. These transportation services ensure the timely delivery of ice to meet the needs of businesses, events, and recreational activities across the state.

Publicnotary said...

Public Notary uae are crucial for the authentication and certification of legal documents. These services are provided by government-appointed notaries who serve as trusted witnesses, ensuring the validity and integrity of various transactions and agreements. Public notary services in the UAE offer a reliable and official platform for individuals and businesses to formalize their legal documentation.

Amazon Herbal said...

Thank you for the excellent post.
Herbal Store Online Dubai

sahanisha0105 said...

Embrace the artistry of our Best Wedding Garland Preservation In Resin, where tradition meets innovation. Your varmala exchange, a cherished moment in your wedding, is preserved with utmost care. Our premium resin encapsulates the beauty of the ritual, turning it into an everlasting keepsake. Witness the transformation as resin captures the emotions and love shared during the ceremony. Choose us for seamless varmala preservation service online, and relive the magic of your special day, whenever you desire. Let your varmala's petals and threads tell a tale of enduring love, preserved for eternity.

Global Assignment Expert said...

Global Assignment Expert provides various facilities such as Expert Guidance, Improved Grades, Customised content, Plagiarism-Free Work, Stress Reduction, and many more. Our Online Assignment Help services are such a valuable resource that can enhance your academic life. They will offer a Learning opportunity and help you manage your time. If you want to improve your grades then Global Assignment Help can be a game-changer in your academic journey.

Rakhi Yadav said...

The University of Calicut, also known as Calicut University, is a state-run public university headquartered at Tenhipalam in Malappuram district of the state of Kerala, India. Established in 1968, it is the first university to be set up in northern Kerala. The university has 18 schools, 40 postgraduate departments, and 142 affiliated colleges spread across six districts in Kerala. It offers a wide range of undergraduate, postgraduate, and research programs in various fields, including arts, science, commerce, engineering, technology, medicine, law, education, and management.

CV Writing Services said...

Unlock new professional opportunities with CV Writing Services Ireland. Our expert writers craft tailored resumes that showcase your skills and experiences, ensuring you stand out in the competitive job market. Whether you're a recent graduate or a seasoned professional, our services are designed to help you secure your dream job.

hkhaoda said...

Top Celeb Style is a UK-based firm, where we make high-quality Leather Jackets for everyone. Our artisans use top-notch techniques and styles to design movie jackets, TV series, gaming jackets, and celebrity jackets at affordable prices. Additionally, we offer discount
offers on every occasion such as Halloween, Black Friday, Christmas, Winter Sales, and Autumn Sales. christmas coats

Gupta Homeo Clinic said...

Uncover the power of nature at Gupta Homeo Clinic, your premier homeopathic clinic in Vaishali Nagar, Jaipur. Embrace a healing journey guided by expert practitioners who prioritize your health and vitality. With a focus on holistic wellness, we invite you to discover the benefits of homeopathy at Gupta Homeo Clinic.

kevin said...

learn how to dropship on amazon without money by using this business strategy.

Ramma Foundation Repair said...

Ramma Foundation Repair specializes in comprehensive Foundation Repair Edmonton. Our expert team employs cutting-edge techniques to address foundation issues, ensuring structural stability. Trust us for reliable Foundation Repair in Edmonton to safeguard your property's integrity.

Hamza khan said...

This article is a must-read! Your thoughts are so well articulated. Bookmarking it now! Quick question: Can you share some guidance on obtaining an Notary Public Agency? Appreciate it!

My Assignment Experts said...
This comment has been removed by the author.
My Assignment Experts said...

Are you in need of assistance with online tests and exams in the USA, Canada, Australia, or the UK? The most convenient solution is to reach out to a top website that specializes in helping students with online assessments. Numerous websites offer reliable online exam help services for students in a wide range of subjects across various academic courses.
Online Assignment Experts

gidoj said...

throughput consulting services in india